2009-11-05 5 views
3

하이버 네이트가 데이터베이스에서 객체를로드하자마자 영속 객체의 클래스 멤버를 초기화하고 싶습니다.hibernate post initialization

어떻게하면됩니까?

구체적으로 다음 영속 객체, 나는 최대 절전 모드 개체를 초기화하는 세터를 사용하기 때문에 생성자에서이 작업을 수행하지 못할 시간대를 date

class Schedule { 

    Calendar date 
    TimeZone tz; 

} 

를 초기화하고 싶습니다. 나는 초기화의 순서에 의존 할 수 없기 때문에 세터에서 이것을 할 수 없다.

답변

0

매핑에서 열정적 초기화를 사용하십시오.

 

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

이것은 OP가 요구하는 것이 아닙니다. 플러스 가져 오기는 값 속성에 대해 기본적으로 열성적입니다. – ChssPly76

0

실제 시나리오는 무엇입니까? 당신이 지속되는이 값이 필요하지 않은 경우, @Transient로 주석하고 initalization 이런 식으로 넣어 :이 문제에 적용되는지 확실하지 않다 질문에서

private Calendar date = Calendar.getInstance(); 
0

를하지만에 가치가있을 수 있습니다 다른 표준 시간대를 다루기 위해 사용자 정의 유형을 살펴보십시오.

데이터베이스에 모든 타임 스탬프가 포함되어야하는 경우 매우 유용합니다. UTC 시간이지만 java가 기본 시스템 시간대를 사용하고 있습니다.

this article