在实现HibernateCompositeUserType
接口以定义由自定义类型组成的自定义复合类型时,我正在寻找编码getPropertyTypes()
方法的帮助。
为Hibernate创建自定义复合类型时,实现CompositeUserType
接口,其中一个方法是:
Type[] getPropertyTypes();
如果组件类型都是基本类型,这很容易做到。它可能看起来像这样:
public Type[] getPropertyTypes() {
return new Type[] {
StringType.INSTANCE,
IntegerType.INSTANCE
};
}
但是,当组件类型是自定义类型时,如何做到这一点呢?
在Hibernate v3.6中,您可以这样做:public Type[] getPropertyTypes() {
return new Type[] {
Hibernate.custom(MyUserType1.class),
Hibernate.custom(MyUserType2.class),
};
}
其中MyUserType1
和MyUserType2
实现UserType
接口。
但是我现在使用的是Hibernate v5.3.22,Hibernate.custom()
方法早就没有了。
new org.hibernate.type.CustomType(new MyUserType1())
适合我。
有同样的问题,遇到了这个SO,所以我想我把我找到的答案放在这里。