Hibernate中的布尔值true

时间:2015-06-20 22:35:42

标签: java hibernate jpa

是否可以将hibernate设置为保存-1而不是1作为数据库中布尔字段的真值?我需要-1来保持与Delphi中的其他程序的兼容性。

2 个答案:

答案 0 :(得分:6)

@Type(type="com.sample.type.CustomClass")
@Column(name = "TEST_FLAG")
private boolean testFlag;

@Type注释需要实现userType接口的类的完整路径;这是用于生成映射列的目标类型的工厂

CustomClas.java,它实现了hibernate提供的UserType接口

UserType实现使开发人员可以挂钩自定义逻辑/实现,并充当关系数据库和类属性之间的适配器。

您需要使用以下方法编写转换逻辑。

  • nullSafeGet():根据结果集
  • 返回的数据创建自定义对象
  • nullSafeSet():将自定义对象转换为需要传递给预准备语句的值

检查API以获取有关hibernate站点的详细信息。

答案 1 :(得分:2)

为什么不使用Integer而不是Boolean?

Integer value;
public void setValue(Boolean b) {
    this.value = (b != null ? (b ? -1 : 0) : null);
}
public Boolean getValue() {
    return (this.value != null ? (this.value == -1 ? true : false) : null);
}
相关问题