持久保存新创建的实体时的LazyInitializationException

时间:2013-05-10 04:14:13

标签: java hibernate many-to-many

我有一个与另一个实体有ManyToMany关系的实体。 让我们说儿童有一系列的爱好。每当我想创建一个新孩子时,我都这样做:

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

LazyInitializationExceptionthrown。我认为这是因为新创建的Child实体尚未附加到Session?如何将新创建的实体附加到会话中,以便在添加相关实体时不会抛出exception。感谢。

1 个答案:

答案 0 :(得分:0)

定义要急切加载的爱好,除非你真的需要它被懒惰地加载哪个hibernate默认

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