有状态sessionbean,里为什么会出现这种情况啊?(对hibernate的操作总失败)
有状态sessionbean,里为什么会出现这种情况啊?(对hibernate的操作总失败)。小弟实在不明白这是为什么????我把对hibernate的操作,放到jsp里来调试,就没问题,但把代码复制到stateful sessionbean 里,一执行到 commit(),就会出错,说有 提交sql异常产生。。。。。这是为什么啊???请大家帮忙啊》》》》》 问题点数:50、回复次数:7Top
1 楼redex(cc)回复于 2005-01-03 11:24:33 得分 50
开发ejb有很多限制的,楼主可以把代码帖出来看看.Top
2 楼noscar(java+Linux)回复于 2005-01-03 11:48:25 得分 0
我用的是,stateful sessionbean :bean里的方法是:
public List ListAll(String hql) {
List lis=null;
try{
Hibernate hibernate=new Hibernate();
Session ses=hibernate.getSession();
Transaction tx=ses.beginTransaction();
lis=ses.find(hql);
tx.commit();
ses.close();
return lis;
}catch(Exception e){
System.out.println("Error in listbean:"+e);
}
return lis;
}
其中Hinernate对象的class是:
Hibernate.java:
public class Hibernate {
private Configuration cfg;
private SessionFactory factory;
private Session session;
public Hibernate() {
try{
this.cfg=new Configuration();
cfg.configure();
this.factory=this.cfg.buildSessionFactory();
this.session=this.factory.openSession();
}catch(Exception e1){
System.out.println("Error e1 in list:"+e1);
}
}
public Session getSession(){
return this.session;
}
调用的程序是:
EjbClient client=new EjbClient("ListLocalHome",ListLocalHome.class);
ListLocalHome home=(ListLocalHome)client.getHome();
ListLocal local=home.create(5);
List list=local.ListAll("from Employee");
/*List lis=null;
Hibernate hibernate=new Hibernate();
Session ses=hibernate.getSession();
Transaction tx=ses.beginTransaction();
lis=ses.find("from Employee");
tx.commit();
ses.close();*/
如果,我在jsp文件里用 上面注释的代码就没问题,但是,用 没有注释的代码,就会在bean里抛出 :
commit sql Exception:Top
3 楼vongood((my c++))回复于 2005-01-03 12:11:34 得分 0
关注,正想学习hibernate。
可是没有时间。Top
4 楼noscar(java+Linux)回复于 2005-01-03 13:44:44 得分 0
抛出:
Error in listbean:net.sf.hibernate.TransactionException: Commit failed with SQL exception:
Top
5 楼nbb()回复于 2005-01-03 13:48:37 得分 0
我爱你,Java!你爱我吗?Top
6 楼redex(cc)回复于 2005-01-03 14:41:19 得分 0
我想你可以去调一调ejb的事务级别试试.Top
7 楼noscar(java+Linux)回复于 2005-01-03 16:24:06 得分 0
谢谢,redex(cc):
问题,解决了! 要把ejb的事务级别设置成 BEAN,而不是 container...马上个分,,,,Top




