EnumMap<Enum,String> (OneToMany) 的休眠注释



我很难找到 bean 属性的正确休眠注释。这是一个 EnumMap 变量。K 是 EnumType,K 是 String。我看到很多讨论类似主题的帖子,但我没有看到任何他们使用字符串作为映射值的线程。我想这可能是这里的问题。我想将其映射为一对一关系。如果 EnumMap 的键值是表中的字符串值,并且映射应该是可为空的,那就太好了。这可能吗?我在这里试过这个:

@OneToMany
@MapKeyEnumerated(EnumType.STRING)
private EnumMap<IDType, String> ids;

例如,枚举的注释,但没有任何效果。我得到一个例外:

Initial SessionFactory creation failed.org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements: entities.persistent.IDContainer.ids

对于任何想法都会非常高兴。我有点迷茫...多谢!

您可以使用

@ElementCollection注释:

@ElementCollection
@MapKeyEnumerated(EnumType.STRING)
private Map<IDType, String> ids = new EnumMap<>(IDType.class);

最新更新