2014-06-24 63 views
0

我有兩個實體,分別爲topicsposts。這裏有很多posts一個topicsHibernate @OneToMany EAGER不起作用

,所以我不得不設立topicsOneToMany

class topics implements Serializable { 
... 
@OneToMany(fetch = FetchType.EAGER, mappedBy = "topic") 
    @OrderBy("date DESC") 
    private List<posts> postsList; 
    public List<posts> getPostsList() 
    { 
     return this.postsList; 
    } 
} 

posts實體是不是topic領域的任何特定的設置,只是典型Integer

所以,問題是我無法獲取這個postsListEAGER提取類型,它會留LAZY反正:

topics theTopic = (topics) session.load(topics.class, topic); 
List<posts> postsOfTopic = theTopic.getPostsList(); 

...的List包含一個對象現在,但它是完全空的。

任何想法如何解決?

+1

posts表是否包含主題表的外鍵? – Shailendra

+0

@Shailendra,是 – WildDev

+1

List中的一個對象然後是一個延遲加載的代理Posts對象。對 ? – Shailendra

回答

2

session.load方法通常返回一個代理,而session.get方法保證返回初始化的實體,並且如果標記爲這樣會急切地獲取集合。此外,還可以選擇使用預先獲取HQL查詢來加載關聯的集合。

相關問題