mysql - 使用 hibernate session 的 saveOrUpdate 方法的奇怪之处

标签 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查询,得到的结果似乎是正确的,但在数据库中实际上没有任何改变。

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

非常感谢。

最佳答案

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

关于mysql - 使用 hibernate session 的 saveOrUpdate 方法的奇怪之处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9088447/

相关文章:

php - 如何在 Laravel 上注册后插入另一个表?

java - DetachedCriteria 和 jax-ws

java - 使用 AccessType.PROPERTY 对 JPA 实体属性调用清除失败

php - 检查数据库中是否存在分隔符之间的短语的查询

Php-mysqli多次连接到数据库

mysql - 如何通过 case 语句联合所有 SQL-SQLite 查询?

python - Tornado 的非阻塞 ORM?

java - eclipselink 中的 UPDATE CASCADE 外键

java - hibernate :参数索引超出范围(8>参数数量,即7)

MySql View 在jpa查询中显示来自数据库的错误信息