2009-11-05 88 views
3

我想在Hibernate從數據庫加載對象後立即初始化持久化對象的類成員。休眠後初始化

我該怎麼做?

更具體地說:在下面的持久對象,我想初始化date的時區

class Schedule { 

    Calendar date 
    TimeZone tz; 

} 

我不能在構造函數中做到這一點,因爲Hibernate將使用setter方法來初始化對象。我不能在setter中這樣做,因爲我不能依賴初始化的順序。

回答

0

在您的映射上使用預先初始化。

 

@Basic(fetch=FetchType.EAGER) 
Calendar date; 
 
+2

這不是OP要求的。默認情況下,對於值屬性,加上抓取是非常渴望的。 – ChssPly76

0

實際場景是什麼?如果你不需要這個值被保留,註釋他們@Transient,並把initalization這樣:

private Calendar date = Calendar.getInstance(); 
0

從你的問題我不知道這是否適用於您的問題,但它可能是值得看看用戶定義的類型來處理不同的時區。

這是非常有用的,如果數據庫應該包含所有時間戳在例如UTC時間,但java正在使用默認的系統時區。

請參閱this article

相關問題