hibernate的getSession().save()不能存在数据到数据库,也不报错

转载自:http://blog.sina.com.cn/s/blog_7d0c4ede0100y4au.html


用这个方法 session.save(); 数据不能保存,delete也不可以。但是可以查询。 网上找了很久,因为没有自动提交.. 没有报错是因为本身没有错误. hibernate会将数据先放在缓存中,你save之后可以查询 是用这个数据 但是数据库没有记录. 事务没提交而已. session.flush().会一次性提交你这事务操作的所有请求. session.save(); session.flush();

转载于:https://my.oschina.net/u/575497/blog/107823

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!关于您提到的问题,可能是由于批量更新时的事务管理配置不正确导致的。在 Hibernate 中,批量更新操作需要在同一个事务中进行,以确保数据的一致性和完整性。 以下是一些可能导致您遇到问题的原因和解决方案: 1. 没有正确配置事务管理器:请确认您的 Hibernate 配置文件中是否正确配置了事务管理器。在 Hibernate 中,可以使用诸如 JTA、JDBC 或 Spring 的事务管理器来管理事务。确保您选择了适合您项目的事务管理器,并正确配置它。 2. 没有显式地开启事务:在进行批量更新操作之前,您需要显式地开启一个事务。您可以使用 `beginTransaction()` 方法来开启一个事务,并在批量更新操作完成后使用 `commit()` 方法提交事务。 3. 批量更新操作没有在同一个事务中:确保您的批量更新操作都在同一个事务中进行。可以使用 Hibernate 的 `Session` 对象来执行批量操作,确保在同一个事务中执行。 以下是一个示例代码片段,展示了如何正确地进行批量更新操作: ``` Session session = sessionFactory.getCurrentSession(); Transaction transaction = null; try { transaction = session.beginTransaction(); // 执行批量更新操作 // ... transaction.commit(); } catch (Exception e) { if (transaction != null) { transaction.rollback(); } // 处理异常 } finally { session.close(); } ``` 请注意,上述代码中的 `sessionFactory` 是 Hibernate 的会话工厂对象,您需要将其替换为您项目中实际使用的会话工厂。 希望这些解决方案可以帮助您解决问题!如果您有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值