读书人

org.hibernate.NonUniqueObjectExcept

发布时间: 2011-11-14 22:03:59 作者: rapoo

hibernate的问题
delete error
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [bean.StuBean#1]

我在做修改操作
public boolean updateStu(StuBean stu)
{
Session s=HibernateSessionFactory.getSession();
Transaction tran=s.beginTransaction();
String sql= "from StuBean where id= ' "+stu.getId()+ " ' ";
System.out.println(stu.getId()+stu.getName()+stu.getSex()+stu.getTel());
Query q=s.createQuery(sql);
List <StuBean> l=q.list();
System.out.println(l);
if(!l.isEmpty())
{
try {
s.update(stu);
tran.commit();
} catch (HibernateException e) {
// TODO 自动生成 catch 块
System.out.println( "update error ");
e.printStackTrace();
}

}
else
{
s.close();
return true;
}

s.close();
return false;
}

上面的错误是什么意思啊

[解决办法]
session 缓存中已经存在你要更新的对象了

先清除掉对象
s.clear() ;
s.update(stu);

读书人网 >Java Web开发

热点推荐