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();
}