2010-06-18 118 views
6

我想將值對象添加到映射類,其中一列固定,具體取決於包含該組件的類。我該如何做這樣的事情?休眠映射文件中的常量

<component name="aComponent"> 
    <property name="abc" column="cde"/> 
    <property name="xyz" value="FIXED"/> 
</component> 

不幸的是,value屬性不存在。有沒有另外一種方法來對財產應用一個常數值?

在此先感謝。

回答

4

您應該使用公式,例如

<property name="xyz" formula="1" type="big_decimal"/> 

從Java持久性與Hibernate,CH。 4.4.1:

給定的SQL公式評估每次實體從 數據庫檢索時間(而不是在任何其它時間,因此,如果其它 屬性被修改的結果可能已過時)。該屬性沒有列屬性(或子元素) ,並且從未出現在SQL INSERTUPDATE中,僅在SELECT中出現。公式 可能引用數據庫表的列,它們可以調用SQL函數 ,它們甚至可能包含SQL子查詢。 SQL表達式按原樣傳遞到底層數據庫 ;如果您不小心並依賴供應商特定的 運算符或關鍵字,這是一個很好的機會將您的映射文件綁定到特定數據庫產品 。