关于使用hibernate session的saveOrUpdate方法的奇怪之处

时间:2012-01-31 23:10:21

标签: mysql database hibernate

我正在使用hibernate连接到mysql数据库。

我的saveOrUpdate方法是:

public void saveOrUpdate(T t){
    Session session = HibernateUtil.getSession();
    Transaction transaction = session.beginTransaction();
    session.saveOrUpdate(t);
    transaction.commit();
}

我实际使用这种方法大约半年,效果很好。 但是现在当我使用这种方法进行junit测试时,看起来很糟糕。 我首先执行saveOrUpdate然后使用Criteria进行查询,它得到的结果似乎是正确的,但在数据库中没有实际改变。

有人可以给我任何关于这里发生的事情的暗示吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

为事务设置的JUnit配置是什么?我相信它会设置为回滚测试中的所有事务。它应该是正确的,因为在测试之后,数据库应该被置于一致/已知状态。代码的正确性应该依赖于编写测试的方式,而不是数据库中实际存在的记录。