나는 inheriatnce 유형 SINGLE_TABLE와 개체 계층 구조를 가지고 :최대 절전 모드에서 상속 항목 SINGLE_TABLE에 엔터티 속성을 매핑하는 방법은 무엇입니까?
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorValue("junioruser")
@DiscriminatorColumn(name = "dtype", discriminatorType = DiscriminatorType.STRING)
.........
public class JuniorUser {
문제는 다음과 같이 대답 엔티티에 속성으로을이 JuniorUser 엔티티를 매핑하고 모든 서브 클래스하는 방법입니다 :
@Entity
public class Answer {
private JuniorUser user;
..........................
이 인 경우 가능하지 않다 어떻게 대답 엔티티의 '사용자'속성에 매핑 할 수 있습니까? 최대 절전 모드 4를 사용하여 JuniorUser 또는 JuniorUser 자체의 올바른 서브 클래스가 있습니까?
는 업데이트 : 답변과 연관된 사용자 검색이 작업을 수행 : 관련 사용자의 정식 이름을 물어
Answer answer = sessionFactory.getCurrentSession().get(entityClass, id);
을
answer.getUser().getClass().getCanonicalName();
com.javahelp.domain.impl.JuniorUser_$$_javassist_3
다음 프로퍼티의 값을 요구 제공 dtype은 'junioruser'를 제공합니다. 마지막으로이 사용자의 다른 모든 속성은 user_id 속성을 포함하여 null입니다.
나 자신이 검색된 답변에 대해 'expertuser'로 dtype이있는 관련 사용자가 있습니다.
감사합니다!
ManyToOne (사용자가 여러 답을 가지고 있다고 가정). 뭐가 문제 야? 왜 당신은 상속 관계가 매핑되는 방법을 변경한다고 생각합니까? –
죄송합니다. 정말 ExpertUser를 검색합니다! 문제는 내가 사용자를 위해 FetchType.LAZY를 지정하고 리플렉션으로 사용자 값을 얻으려고했다는 것입니다. 최대 절전 모드로 아직 사용자 속성이 초기화되지 않았습니다! –