hibernate3.5 jta事务问题

第一次使用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的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值