我有inheriatnce型SINGLE_TABLE實體層次:如何在Hibernate中將實體屬性映射到繼承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;
..........................
如果是不可能那麼我怎麼能映射到'用戶'屬性在Answer實體正確的JuniorUser或JuniorUser的子類本身使用Hibernate 4?
UPDATE: 我這樣做是爲了獲取答案和相關的用戶:
Answer answer = sessionFactory.getCurrentSession().get(entityClass, id);
詢問相關用戶的規範名稱
answer.getUser().getClass().getCanonicalName();
給com.javahelp.domain.impl.JuniorUser_$$_javassist_3
接下來要求的屬性值它給出'低級用戶'的dtype。 最後一件事是該用戶的所有其他屬性都爲null,包括user_id屬性。
我自己看到,對於檢索答案,我有相關用戶,其中dtype爲'expertuser'
謝謝!
與ManyToOne(假設用戶有幾個答案)。有什麼問題?爲什麼你認爲繼承會改變協會的映射方式? –
我很抱歉!它真的檢索ExpertUser!問題是我爲用戶指定了FetchType.LAZY,並試圖通過反射來獲取用戶值。用戶屬性尚未由hibernate初始化! –