0
我有一些奇怪的事情与我的休眠。当我使用下面的方法时,我每次调用它时都会增加我的插入查询。休眠增加我的插入,导致在数据库中重复的行
public void merge(Object entity) {
session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
session.merge(entity);
session.getTransaction().commit();
}
我把上面的从我的servlet。
,并得到
Hibernate: insert into marker (organisation, projectId) values (?, ?)
,如果我把它再我得到
Hibernate: insert into marker (organisation, projectId) values (?, ?)
Hibernate: insert into marker (organisation, projectId) values (?, ?)
和第三次
Hibernate: insert into marker (organisation, projectId) values (?, ?)
Hibernate: insert into marker (organisation, projectId) values (?, ?)
Hibernate: insert into marker (organisation, projectId) values (?, ?)
等等。所以它看起来像我每次合并它会调用插入一个额外的时间。我可以在我的数据库记录中看到它确实增加了插入,并且我也从servlet调用了我的方法,如果这可能意味着什么的话。
saveOrUpdate是解决方案。 该方法根据操作调用save()或update()。如果标识符存在,它将调用update方法,否则将调用save方法。 –