Hibernate 是 JDBC 的轻量级封装,本身并不具备事务管理能力。在事务管理层,
Hibernate 将其委托给底层的JDBC 或者JTA ,以实现事务管理和调度功能。
Hibernate 的默认事务处理机制基于JDBC Transaction。我们也可以通过配置文定采用
JTA 作为事务管理实现:
<property name="hib ernate.transaction.factory_class">
net.sf.hibernate.transacti on.JTATransactionFactory
<!--net.sf.hibernate.transac tion.JDBCTransactionFactory-->
</property>
将事务管理委托给 JDBC 进行处理无疑是最简单的实现方式,Hibernate 对于 JDBC
事务的封装也极为简单。
我们来看下面这段代码:
session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
……
tx.commit();
从JDBC 层面而言,上面的代码实际上对应着:
Connection dbconn = getConnection();
dbconn.setAutoCommit(false);
……
dbconn.commit();
就是这么简单,Hibernate并没有做更多的事情(实际上也没法做更多的事情),只
是将这样的JDBC 代码进行了封装而已。
Hibernate 将其委托给底层的JDBC 或者JTA ,以实现事务管理和调度功能。
Hibernate 的默认事务处理机制基于JDBC Transaction。我们也可以通过配置文定采用
JTA 作为事务管理实现:
<property name="hib ernate.transaction.factory_class">
net.sf.hibernate.transacti on.JTATransactionFactory
<!--net.sf.hibernate.transac tion.JDBCTransactionFactory-->
</property>
将事务管理委托给 JDBC 进行处理无疑是最简单的实现方式,Hibernate 对于 JDBC
事务的封装也极为简单。
我们来看下面这段代码:
session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
……
tx.commit();
从JDBC 层面而言,上面的代码实际上对应着:
Connection dbconn = getConnection();
dbconn.setAutoCommit(false);
……
dbconn.commit();
就是这么简单,Hibernate并没有做更多的事情(实际上也没法做更多的事情),只
是将这样的JDBC 代码进行了封装而已。