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方法。 –