Hibernate UserTypeCollection出错
我已经按照以下步骤实现了我的自定义集合 我还注释了实体的相应属性,如下所示:Hibernate UserTypeCollection出错,hibernate,jpa,Hibernate,Jpa,我已经按照以下步骤实现了我的自定义集合 我还注释了实体的相应属性,如下所示: @OneToMany(cascade = ALL, mappedBy = "plan", fetch = EAGER, orphanRemoval = true) @CollectionType(type = "my.namespace.MyCustomCollectionType") public MyCustomCollection getThings() { return things;
@OneToMany(cascade = ALL, mappedBy = "plan", fetch = EAGER, orphanRemoval = true)
@CollectionType(type = "my.namespace.MyCustomCollectionType")
public MyCustomCollection getThings() {
return things;
}
但是,在创建映射时,Hibernate会抱怨:
Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements
根据我们的经验,这应该是可以的。我应该能够在方法签名中使用自定义集合,因为我使用自定义集合类型批注:
实际接口可能是java.util.Set、java.util.Collection、java.util.List、java.util.Map、java.util.SortedSet、,
java.util.SortedMap或您喜欢的任何东西(“您喜欢的任何东西”的意思是
您必须编写一个
org.hibernate.usertype.UserCollectionType)
我不知道怎么了。好的,我解决了我的问题 首先,更清楚地说,是的,我有两门课。 第一个是我的自定义集合(MyCustomCollection),另一个扩展(MyCustomCollectionType),这是Hibernate支持自定义集合所需的技术接口 无论如何,我已经找出了问题所在:
- 首先,Hibernate只支持集合的方法签名中的接口,所以我编写了ICustomCollection。然后我需要申报 (在我的例子中),它扩展了这个接口
- 然后,MyCustomCollectionType应返回此自定义持久集
这是一本书。它在这里已经有一段时间了。my.namespace.MyCustomCollectionType是否继承或实现了
MyCustomCollection
?它应该…您的方法签名应该类似于public List getThings()
@yair No,它实现了UserCollectionType。我认为它不需要扩展我的CustomCollection。我试着这么做,但它并没有解决问题。嗯,有些事情还不清楚。您是否有两个类-my.namespace.MyCustomCollectionType
和MyCustomCollection
?若然,原因为何?它们之间有什么关系?