我正在使用 hibernate 连接到 mysql 数据库。
我的 saveOrUpdate 方法是:
public void saveOrUpdate(T t){
Session session = HibernateUtil.getSession();
Transaction transaction = session.beginTransaction();
session.saveOrUpdate(t);
transaction.commit();
}
这个方法我实际使用了半年左右,效果很好。 但现在当我使用这种方法进行 junit 测试时,它看起来很糟糕。 我先做了saveOrUpdate,然后使用Criteria查询,得到的结果似乎是正确的,但在数据库中实际上没有任何改变。
有人可以给我任何关于这里发生的事情的提示吗?
非常感谢。
最佳答案
您为事务设置的 JUnit 配置是什么?我相信它会回滚测试中的所有事务。应该如此,因为测试后数据库应该恢复到一致/已知的状态。代码的正确性应该取决于您编写测试的方式,而不是数据库中实际存在的记录。
关于mysql - 使用 hibernate session 的 saveOrUpdate 方法的奇怪之处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9088447/