2011-12-16 5 views
1

UserUserProfile 엔티티가 있습니다. User u을 생성하고이를 Hibernate 컨텍스트에 저장/첨부 할 수 있고 싶다면 과 같이 UserProfile 객체를 인스턴스화하고 설정할 필요없이 간단하게 호출 할 수 있습니다.관련 엔티티를 늦게 최대 절전 모드로 만들 수 있습니까?

// create, populate, and save user with only some primitive values 
// note that no UserProfile is explicitly set 
User u = new User(); 
u.setSomePrimitive(somePrimitive); 
u.setSomeOtherPrimitive(someOtherPrimitive); 
session.save(u); 

// navigate into and set something on the user profile 
u.getUserProfile().setFirstName("Steve-o"); 

는 기본적으로, 나는 게으르게 나를 위해 연결 실체의 연결을 인스턴스화 최대 절전 모드 원하는 :

는 명확하게하기 위해, 여기에 몇 가지 코드입니다. 나는 Hibernate가 매우 쉽게 더티라고 표시 할 수 있고, 데이터가 설정된 느슨하게 생성 된 연관을 유지하고 그렇지 않으면 무시한다는 것을 알 수있다.

이것이 가능합니까?

답변

1

아니요, 아니요 (좋은 소식입니다.). BTW, 그것은 일대일, 필수 협회에만 의미가 있습니다. 그리고 어쨌든 사용자를 저장하기 전에 프로필에 필수 값을 모두 입력해야합니다. new UserProfile()에 대해 무엇이 어렵습니까?

원하는 경우 사용자 생성자에서 프로필을 만들고 사용자가있을 때 프로필이 저장되도록 계단식을 설정할 수 있습니다.

+0

위 사용 사례는 간단한 예를 제공합니다. 실제로 그래프에서 더 깊은 1-11 하위 엔티티에 setter를 호출하고 싶습니다. 모든 새로운 문장은 코드를 파괴합니다. 나는 지금 막 정확히 그렇게하기 시작했다. 생성자에서 필요한 연관성을 생성했다. 감사! –

+0

또한 탐색 된 연결은 하위 그래프에 무언가가 설정되어있을 때만 더러워지기 때문에 설정을 수행하는 모든 사람이 백업을 탐색하여 접촉 된 분기의 요구 사항을 채우는 것이 분명합니다. 손길이 닿지 않은 지점은 비 거주하고 고정되지 않은 채로있을 것입니다. 나는 아직도 이것이 안전하게 자동화 될 수 있다고 생각한다. –

관련 문제