2014-06-24 4 views
0

У меня есть два объекта, topics и posts соответственно. Вот много posts за один topics.Hibernate @OneToMany EAGER не работает

Так я создал topics к OneToMany:

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.

Так проблема в том, что я не могу принести это postsList с EAGER типа выборки, он будет оставаться LAZY все равно:

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

... List содержит один объект сейчас, но она полна нулей.

Любые идеи, как исправить?

+1

В таблице сообщений содержится внешний ключ для таблицы тем? – Shailendra

+0

@Shailendra, yes – WildDev

+1

Единственный объект в списке - это прокси-сервер. Правильно ? – Shailendra

ответ

2

Метод session.load обычно возвращает прокси-сервер, тогда как метод session.get гарантированно возвращает инициализированный объект и будет охотно извлекать коллекцию, если она помечена как таковая. Также есть возможность использовать запрошенные HQL-запросы с нетерпением для загрузки связанной коллекции.

Смежные вопросы