是否可以将hibernate设置为保存-1而不是1作为数据库中布尔字段的真值?我需要-1来保持与Delphi中的其他程序的兼容性。
答案 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);
}