【问题标题】:Hibernate update queries in Transaction and directly on connection在事务中和直接在连接时休眠更新查询
【发布时间】:2018-03-12 16:53:40
【问题描述】:

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

  1. 在事务中执行更新(例如在用 @Transactional 注释的方法中。
  2. 在没有事务的情况下执行更新,如下所示:

`

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

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

【问题讨论】:

  • 区别与使用休眠与使用普通 jdbc 相同,因为这就是您在第二种情况下所做的。也总是有一个事务......该语句可能处于自动提交模式,它将为每个语句打开并提交一个事务

标签: hibernate transactions


【解决方案1】:

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

事务是一个接口,它定义了工作单元,它维护了事务实现(JTA、JDBC)的抽象。事务与 Session 相关联。 因此,要最大限度地利用休眠状态,您需要事务。如果不是,则根本没有使用休眠的意义。

hibernate 的主要优点是它可以一次处理多个请求并且易于使用,但是如果您每分钟的请求少于 50 个,请不要使用 hibernate,它只会浪费内存。

阅读更多,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 2013-07-01
    • 2015-04-17
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多