我正在使用hibernate连接到mysql数据库。
我的saveOrUpdate方法是:
public void saveOrUpdate(T t){
Session session = HibernateUtil.getSession();
Transaction transaction = session.beginTransaction();
session.saveOrUpdate(t);
transaction.commit();
}
我实际使用这种方法大约半年,效果很好。 但是现在当我使用这种方法进行junit测试时,看起来很糟糕。 我首先执行saveOrUpdate然后使用Criteria进行查询,它得到的结果似乎是正确的,但在数据库中没有实际改变。
有人可以给我任何关于这里发生的事情的暗示吗?
非常感谢。
答案 0 :(得分:1)
为事务设置的JUnit配置是什么?我相信它会设置为回滚测试中的所有事务。它应该是正确的,因为在测试之后,数据库应该被置于一致/已知状态。代码的正确性应该依赖于编写测试的方式,而不是数据库中实际存在的记录。