zoukankan      html  css  js  c++  java
  • Hibernate API申明事务边界

    在Hibernate API中,Session和Transaction接口提供了以下声明事务边界的方法:

    • 声明事务的开始边界:
    1 Transaction tx = session.beginTransaction();

    以上方法完成两个任务:

    1,为Session对象分配数据库连接,并且自动把这个连接设为手工提交事务模式。Hibernate的底层实现会自动调用代表数据库连接的java.sql.Connection对象的setAutoCommit(false)方法。

    2,开始一个新的事务。Session的beginTransaction()方法返回的类型是由Hibernate配置文件中的hibernate.transaction.factory_class事务工厂属性决定的,该属性的默认值为org.hibernate.transaction.JDBCTransactionFactory。JDBCTransactionFactory表示JDBC事务工厂,它负责创建JDBCTransaction类的实例。因此,默认情况下,Session的beginTransaction()方法返回JDBCTransaction实例。

    • 提交事务
    1 tx.commit();

    以上方法完成两个任务:

    1,在默认情况下,Session采用自动清理缓存模式,在这种情况下,commit()方法会先自动调用Session的flush()方法清理缓存,即按照Session缓存中对象的变化去同步更新数据库。

    2,向底层数据库提交事务。

    3,释放Session占有的数据库连接。

    • 撤销事务
    1 tx.rollback();

    以上方法立即撤销事务,并且释放Session占用的数据库连接。

  • 相关阅读:
    random模块的讲解
    函数的商城代码练习
    python文件作业
    函数的学习
    三元表达式和列表生成式
    jQuery 遍历方法
    CSS font属性综合写法
    JQuery 添加节点
    Bootstrap 响应式中的兼容
    jQuery 中的attr和prop的区别
  • 原文地址:https://www.cnblogs.com/xiluhua/p/4362618.html
Copyright © 2011-2022 走看看