struts中使用JTA无法对hibernate进行保存,高手指点

wzs 2005-04-27 06:25:11
我在struts的Action(EJB的sessionbean也一样)中对做事务处理时无法保存代码如下,代码没有错,
只是无法提交,后来我用hibernate中自己的session事务可以成功,不知道为何
===================================================================================
try
{
InitialContext ic=new InitialContext();
UserTransaction ut = (UserTransaction) ic.lookup("java:comp/UserTransaction");
Tsysresourceright tsr=new Tsysresourceright();
String resourcename="testresourcename";
String actionkey="testactionkey";
String upname="testupname";
String upid="999999";
String url="testurl";
tsr.setResourceid(new Integer("34556"));
tsr.setUrl(url);
tsr.setActionkey(actionkey);
tsr.setResourcename(resourcename);
tsr.setUpid(new Integer(upid));
tsr.setUpname(upname);
tsr.setNodetype(new Integer(SystemConst.NODETYPE_FUNCTION));
tsr.setActiveno(new Integer(1));
tsr.setCountryid(new Integer("99999"));


Tsysresourceright tsr1=new Tsysresourceright();
resourcename="testresourcename1";
upname="testupname1";
upid="999999";
url="testurl1";
tsr1.setResourceid(new Integer("325566"));
tsr1.setUrl(url);
tsr1.setActionkey(actionkey+"dd");
tsr1.setResourcename(resourcename);
tsr1.setUpid(new Integer(upid));
tsr1.setUpname(upname);
tsr1.setNodetype(new Integer(SystemConst.NODETYPE_FUNCTION));
tsr1.setActiveno(new Integer(1));
tsr1.setCountryid(new Integer("99999"));


TsysresourcerightDao tsrd=new TsysresourcerightDao();
ut.begin();
// tsrd.insert(tsr);
// tsrd.insert(tsr1);

Configuration cfg = new Configuration()
.addClass(Tsysresourceright.class);
SessionFactory sf = cfg.buildSessionFactory();
Session s=sf.openSession();
// net.sf.hibernate.Transaction tx=s.beginTransaction();
s.save(tsr);
s.flush();
s.save(tsr1);
s.flush();
s.close();
// tx.commit();


ut.commit();
}
catch (Exception ex)
{
ex.printStackTrace();
}
...全文
73 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wzs 2005-05-08
zhutouzip(Speak out!-shyboy):
===========================================
s.close();
tx.commit();//这句是注释掉的老大
======================================
我用的是UserTransaction的commit()按次序来说ut.commit()是跟hibernate中的session的commit()是不一样的,你说的这种方法我也试了不行,实在是郁闷
回复
飞行的兔子 2005-04-29
s.close();
tx.commit();
这两个的顺序换一下!
回复
wzs 2005-04-29
怎么没人回答啊
回复
wzs 2005-04-28
怎么没人回答啊,郁闷死了搞了一整天就是不知道为啥
回复
wzs 2005-04-27
kaymo:还是一样啊不行
回复
kaymo 2005-04-27
<property name="transaction.factory_class">org.hibernate.transaction.JTATransactionFactory
</property>
<property name="jta.UserTransaction">javax.transaction.UserTransaction</property>
指定用jta事务

sessionbean设置事务required,不用显示写事务代码
回复
MARS.nEIL 2005-04-27
学习..不熟.帮顶.
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2005-04-27 06:25
社区公告
暂无公告