第一次使用jta事务,使用的服务器为jboss5。代码如下 :
hibernate1.cfg.xml
<session-factory>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="connection.url">
jdbc:mysql://127.0.0.1:3306/hibernate1
</property>
<property name="connection.username">root</property>
<property name="connection.password"></property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="transaction.factory_class">
org.hibernate.transaction.JTATransactionFactory
</property>
<property name="jta.UserTransaction">java:comp/UserTransaction</property>
<property name="hibernate.transaction.manager_lookup_class">
org.hibernate.transaction.JBossTransactionManagerLookup
</property>
<property name="show_sql">true</property>
<mapping resource="com/hibernate/domain/Person.hbm.xml" />
</session-factory>
hibernate2.cfg.xml
<session-factory>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="connection.url">
jdbc:mysql://127.0.0.1:3306/hibernate2
</property>
<property name="connection.username">root</property>
<property name="connection.password"></property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="transaction.factory_class">
org.hibernate.transaction.JTATransactionFactory
</property>
<property name="jta.UserTransaction">java:comp/UserTransaction</property>
<property name="hibernate.transaction.manager_lookup_class">
org.hibernate.transaction.JBossTransactionManagerLookup
</property>
<property name="show_sql">true</property>
<mapping resource="com/hibernate/domain/User.hbm.xml" />
</session-factory>
测试代码:
UserTransaction ut = null;
SessionFactory sf1 = new Configuration().configure(
"hibernate_db1.cfg.xml").buildSessionFactory();
SessionFactory sf2 = new Configuration().configure(
"hibernate_db2.cfg.xml").buildSessionFactory();
try {
Context context = new InitialContext();
ut = (UserTransaction) context.lookup("java:comp/UserTransaction");
} catch (NamingException e) {
e.printStackTrace();
}
try {
ut.begin();
Session s1 = sf1.openSession();
s1.save(p);
s1.close();
Session s2 = sf2.openSession();
s2.save(u);
// 查询
User user = (User) s2.get(User.class, 44);
System.out.println("name=" + user.getName());
s2.close();
ut.commit();
} catch (Exception e) {
e.printStackTrace();
}
执行结果:
10:37:30,250 INFO [STDOUT] Hibernate: select user0_.id as id2_0_, user0_.name as name2_0_ from user user0_ where user0_.id=?
10:37:30,328 INFO [STDOUT] name=小明
没有insert语句,数据库也没有结果。
那位同学帮忙看下原因。
BTW:表是innodb的
分享到:
相关推荐
8. **事务管理:** Hibernate支持JTA(Java Transaction API)和JDBC事务管理,确保数据的一致性和完整性。 9. **延迟加载(Lazy Loading):** Hibernate允许关联的对象在需要时才加载,以提高性能。 10. **实体...
8. **事务管理**:Hibernate提供了基于JTA(Java Transaction API)和JDBC的事务管理机制,确保数据库操作的原子性、一致性、隔离性和持久性。 9. **事件和监听器**:Hibernate 3.5允许开发者注册监听器来响应对象...
这个压缩包"hibernate3.5_lib"包含了运行和开发使用Hibernate 3.5版本所需的全部类库。以下是对这些库文件的详细解释: 1. **Hibernate Core**:这是Hibernate的核心模块,包含了基本的ORM功能,如实体管理、事务...
8. **事务管理**:Hibernate支持JTA(Java Transaction API)和JDBC事务管理,确保数据操作的原子性、一致性、隔离性和持久性。 9. **缓存机制**:Hibernate有两层缓存,一级缓存(Session级别)和二级缓存...
3. **事务处理**:Hibernate 提供了基于 JTA(Java Transaction API)和 JDBC 的事务管理。在源代码中,我们可以看到 `Transaction` 接口及其实现类,它们提供了开始、提交、回滚事务的方法。 4. **缓存机制**:...
9. **事务管理(Transactions)**:Hibernate支持JTA和JPA两种事务管理方式,确保数据的一致性和完整性。 10. **级联操作(Cascades)**:指定一个实体的修改或删除操作应如何影响关联的实体,如CascadeType.ALL、...
12. **事务管理**:讲解Hibernate的事务API,包括Transaction接口和FlushMode,以及如何与其他事务管理机制(如JTA)集成。 13. **事件监听器**:学习如何使用Hibernate事件系统来实现定制的行为,如预加载、预更新...
7. **事务管理**:Hibernate支持JTA(Java Transaction API)和JDBC事务管理,确保数据的一致性和完整性。 8. **关联映射**:Hibernate支持一对一、一对多、多对一、多对多等各种关联关系的映射,使对象模型能够...
6. **事务管理**:Hibernate支持JTA(Java Transaction API)和JTASessionContext,以及JDBC级别的本地事务。`Transaction`接口用于开始、提交和回滚事务。 7. **查询语言(HQL)**:Hibernate Query Language是一...
- **事务策略配置**:介绍了如何配置 Hibernate 的事务管理策略,以适应不同的应用服务器环境。 - **JNDI 绑定的 SessionFactory**:描述了如何将 SessionFactory 注册到 JNDI 上供其他应用使用。 - **与 JTA 的...
- **事务(Transactions)**:在Hibernate中,你可以利用JTA或编程式事务管理来处理数据库事务。 总的来说,这个压缩包提供的jar文件集是开发基于Hibernate 3.5.5的Java应用的基础,它包含了运行和管理对象持久化的...
事务管理是数据库操作中的关键部分,Hibernate提供了集成的事务处理机制,可以与JTA(Java Transaction API)或JDBC事务进行协同工作。这确保了在出现异常时能够正确回滚数据库状态,保持数据的一致性。 另外,...
5. 事务管理:支持JTA(Java Transaction API),使得在分布式环境下的事务管理更为便捷。 6. 类型系统:引入了更加丰富的类型系统,如日期时间类型、集合类型等,增强了与数据库的兼容性。 三、使用Hibernate 3.5 ...
- **事务管理**: 支持本地事务和JTA事务,通过`Transaction`或`UserTransaction`接口管理事务生命周期。 - **性能调优**: 如调整SQL查询、使用批处理、优化检索策略等手段提高应用程序的整体性能。 6. **集成...
在Hibernate中使用事务的典型方法是在Session的生命周期内管理事务。 ##### 2.4 事务性模式(和反模式) **241. 会话/操作反模式** 会话/操作反模式指的是在每个操作都开启一个新的Session,这种方式可能导致资源...
Hibernate 支持多种事务管理策略,包括本地事务和 JTA 事务。 - **3.8.2 JNDI-bound SessionFactory** 在 J2EE 环境中,可以通过 JNDI 查找的方式来获取 SessionFactory。 - **3.8.3 使用 JTA 的当前会话...
首先,Hibernate 3.6是一个相对成熟的版本,发布于2010年,它在3.5版本的基础上进行了多方面的改进和优化。这个版本引入了一些新的特性和改进,包括支持JPA 2.0规范、增强了对HQL和Criteria查询的支持,以及对数据库...
20.6 Java应用通过Hibernate API声明JTA事务 20.7 Java应用通过JTA API声明JTA事务 20.8 小结 20.9 思考题 第21章 处理并发问题 21.1 多个事务并发运行时的并发问题 21.1.1 第一类丢失更新 21.1.2 脏...
3.5. Hibernate缓存属性 3.6. Hibernate事务属性 3.7. 其他属性 3.8. Hibernate SQL方言 (hibernate.dialect) 3.9. Hibernate日志类别 3.10. JTA TransactionManagers 9.1. 继承映射特性(Features of ...
- **Jta.jar:** Java Transaction API,用于处理事务。 - **Dom4j.jar:** XML处理工具,用于解析和生成XML文件。 - **Log4j.jar:** 日志记录工具,与Commons-logging配合使用。 ##### 1.2 编写持久类 - **持久类**...