2015-06-20 79 views
5

是否可以將hibernate設置爲保存-1而不是1作爲數據庫中布爾字段的真值?我需要-1來保持與Delphi中其他程序的兼容性。Hibernate中的布爾真值

回答

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

@Type註釋需要一個完整路徑實現了用戶類型接口的類;這是工廠製造映射列

CustomClas.java它實現通過提供用戶等級和積分接口的目標類型冬眠

的UserType實現提供顯影劑鉤定製邏輯/實施並作爲關係數據庫之間的適配器和你的班級財產。

您需要在以下方法中編寫轉換邏輯。

  • nullSafeGet():根據通過的結果返回的數據自定義對象設置
  • nullSafeSet():自定義對象轉換成需要傳遞給準備好的聲明

檢查詳細的API價值休眠站點。

2

爲什麼不使用Integer而不是布爾值?

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); 
} 
+2

不這樣做的一個好理由是它強制每個JPQL查詢使用'= -1'而不是'= true'。 –