对于一个持久化框架,或者说ORM软件,事务的概念可能包含如下不同的内涵:
该参数的值为jdbc(默认)或jta,二者取其一。
- 底层数据库的物理事务
- 持久化上下文本身的逻辑事务
- 基于持久化框架的上层应用事务
对于底层数据库的物理事务,这依赖于数据库管理系统本身提供的事务功能。对于Hibernate来说,只是封装了JDBC连接数据库或JTA数据库资源,Hibernate本身不提供额外的任何事务机制。因而,Hibernate只支持JDBC事务和JTA事务。
在Hibernate的配置文件中,可以设置参数声明采用的事务类型如下:
hibernate.transaction.coordinator_class=jdbc|jta
该参数的值为jdbc(默认)或jta,二者取其一。
显然,JDBC事务是依赖java.sql.Connection实现的事务。
对于JTA事务,Hibernate需要知道其使用的JTA服务平台,这通过如下参数配置:
hibernate.transaction.jta.platform=JBossAS