2013-05-10 3 views
0

У меня есть объект, который имеет отношение ManyToMany к другому объекту. Позвольте сказать, что у ребенка есть коллекция хобби. Всякий раз, когда я хочу создать новый ребенок, я могу это сделать:LazyInitializationException при сохранении только что созданного объекта

Child child = new Child(); 
List<Hobby> hobbies = hobbiesDAO.retrieveAll(); //Get all hobbies from database 
child.setHobbies(hobbies); // Error is thrown here 
childDao.create(child); // persist to database 

LazyInitializationException является thrown. Я думаю, это потому, что недавно созданный дочерний объект еще не привязан к Session? Как я могу присоединить вновь созданный объект к сеансу, чтобы он не бросал при добавлении связанных объектов. Благодарю.

ответ

0

определим hobies быть с готовностью загружены, если вы действительно нужны, чтобы это было лениво загружен, которые зимуют делает defaultly

@ManyToMany(fetch=FetchType.EAGER) 
    public List<Hobby> getHobbies() { 
     return hobbies; 
    } 
+0

жадная загрузка не является приемлемым на моей нынешней ситуации, поскольку она включает в себя большое количество данных. Что касается FetchType.LAZY, он бросает LazyInitializationException при сохранении. – randacun

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