Hibernate在Transaction中更新查询并直接在连接上更新

时间:2018-03-12 16:53:41

标签: hibernate transactions

我试图找出Hibernate更新查询中的微小差异,我有两个有趣的可能性:

  1. 在事务中执行更新(例如,在使用@Transactional注释的方法中。
  2. 执行不带事务的更新,如下所示:
  3. `

    Connection connection = entityManager.getDataSource().getConnection();
    connection.prepareStatement(...);
    affectedRows = ps.executeUpdate();
    

    第二个不创建交易,所以我猜它可能更快?考虑非常简单的更新查询,我真的不需要事务。有什么真正的区别?

1 个答案:

答案 0 :(得分:1)

Hibernate 是Java编程语言的对象关系映射工具。它提供了一个框架,用于将面向对象的域模型映射到关系数据库。最重要的是,当负载很大时,hibernate的性能会相当快。

事务是一个接口,用于定义工作单元它维护对事务实现(JTA,JDBC)的抽象。事务与会话相关联。因此,为了最大限度地摆脱休眠,您需要进行事务处理。如果没有,那就根本不使用休眠。

hibernate的主要优点是它可以同时处理多个请求并且易于使用,但是如果每分钟少于50个请求,请不要使用休眠,这只会浪费RAM。

了解更多,