Java 在创建自定义hibernate类型类时,是否应该有不同的wrap和unwrap类类型?
创建自定义休眠类型时,例如Java 在创建自定义hibernate类型类时,是否应该有不同的wrap和unwrap类类型?,java,hibernate,hibernate-types,Java,Hibernate,Hibernate Types,创建自定义休眠类型时,例如 public class CustomHibernateType extends AbstractSingleColumnStandardBasicType<Custom> { public CustomHibernateType() { // Notice the JsonBinarySqlTypeDescriptor class from @vladmihalcea's hibernate types library
public class CustomHibernateType extends AbstractSingleColumnStandardBasicType<Custom>
{
public CustomHibernateType()
{
// Notice the JsonBinarySqlTypeDescriptor class from @vladmihalcea's hibernate types library
super(JsonBinarySqlTypeDescriptor.INSTANCE, CustomHibernateTypeDescriptor.INSTANCE);
}
@Override
public String getName()
{
return "CustomHibernateType";
}
}
我发现在自定义hibernate类型描述符中保存和检索数据时,使用的类类型是不同的。它保存为jacksonJsonNode
,这是预期的,因为这是在JsonBinarySqlTypeDescriptor
类中使用的,但是当检索它时,它会在unwrap方法中作为PGobject(具有简单的字符串值)检索
我应该期待这个,还是应该在两个方向上都期待JsonNode?我在处理PGobject时没有问题,只是没有预料到,所以我想知道是否有一些配置丢失。方法将实体属性类型转换为应该传递给JDBC
PreparedStatement
的类型
unwrap
方法将从JDBCResultSet
提取的对象转换为预期的实体属性类型
// only constructor for brevity, can include more if needed
public CustomHibernateTypeDescriptor()
{
super(Custom.class, ImmutableMutabilityPlan.INSTANCE);
}