如何获得(自定义)UserType类的Hibernate类型对象



在实现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),
};
}

其中MyUserType1MyUserType2实现UserType接口。

但是我现在使用的是Hibernate v5.3.22,Hibernate.custom()方法早就没有了。

new org.hibernate.type.CustomType(new MyUserType1())

适合我。

有同样的问题,遇到了这个SO,所以我想我把我找到的答案放在这里。

最新更新