我遇到了一种奇怪的情况,其中hibernate delete适用于所有记录但不适用于id = 1
。起初,我使用getCurrentSession
来检索活动的hibernate会话,但是将其更改为手动打开/关闭新会话以进行删除,因为它无法正常工作。但现在它仍然无效。即便如此,我正在使用交易。
@Override
public void delete(Song song) {
session = sessionFactory.openSession();
try {
Transaction tx = session.beginTransaction();
session.delete(song);
tx.commit();
} catch (HibernateException e) {
System.out.println("notify!");
}
session.close();
}
我有5个测试记录。我可以删除id = {2,3,4,5},但我无法删除id = 1。有什么想法吗?
编辑:this是我的歌曲实体的代码。
答案 0 :(得分:1)
我注意到的一件事是您默认将ID设置为1
。即使我不知道它是否真的是你问题的根源(但确实闻起来像它)。