1

我很难为 bean 属性找到正确的休眠注释。它是一个 EnumMap 变量。K 是 EnumType,K 是字符串。我看到许多讨论类似主题的帖子,但我没有看到任何使用字符串作为映射值的线程。我想这可能是这里的问题。我想将其映射为 OneToMany 关系。如果 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

任何想法都会很高兴。我有点迷路了......非常感谢!

4

1 回答 1

1

您可以使用 @ElementCollection 注释:

@ElementCollection
@MapKeyEnumerated(EnumType.STRING)
private Map<IDType, String> ids = new EnumMap<>(IDType.class);
于 2019-03-07T06:33:11.423 回答