2009-11-05 148 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

相关问题