在hibernate 中如何更新主键!!!!!!!!!!!!!

03-07-12 hibernate
Session s = DBhibernate.getSession();

Mer m = new Mer();

MerForm mer = m.find(s , ((MerForm)aForm).getKey()//旧主健值);

mer.setName(((MerForm)aForm).getName()//新主健值);

m.update(s , mer);

public void update(Session s , MerForm f)

{

s.saveOrUpdate(f);

s.flush();

s.connection().commit();

}

以上会出项异常

net.sf.hibernate.HibernateException: identifier of an instance of test.MerForm altered from 878 to 87ff

非主健则成功更新

在 .bhm.xml文件中 <generator class="assigned"/>

另外从ThreadLocal中获得的session该在什么时候关闭

重新部署的时候有时会出现

net.sf.hibernate.impl.SessionImpl finalize

警告: unclosed connection

请大家多多指教

谢谢!!!!!!

hibernate
2003-07-12 03:51
Session s = DBhibernate.getSession();

Mer m = new Mer();

MerForm mer = m.find(s , ((MerForm)aForm).getKey()//旧主健值);

mer.setName(((MerForm)aForm).getName()//新主健值);

m.update(s , mer);

public void update(Session s , MerForm f)

{

s.saveOrUpdate(f);

s.flush();

s.connection().commit();

}

以上会出项异常

net.sf.hibernate.HibernateException: identifier of an instance of test.MerForm altered from 878 to 87ff

非主健则成功更新

在 .bhm.xml文件中<generator class="assigned"/>

另外从ThreadLocal中获得的session该在什么时候关闭

重新部署的时候有时会出现

net.sf.hibernate.impl.SessionImpl finalize

警告: unclosed connection

请大家多多指教

谢谢!!!!!!

hibernate
2003-07-12 03:52
以上会出项异常

net.sf.hibernate.HibernateException: identifier of an instance of test.MerForm altered from 878 to 87ff

非主健则成功更新

在 .bhm.xml文件中(generator class="assigned")

zxczf
2003-07-12 19:46
主键能更新吗?复制一个,删除原来的?有什么意义

session可以在filter中关闭

bruce
2003-07-12 20:58
在数据库设计中主键应不和商业逻辑有关系的。就是表示唯一的tuple而已

建议:

新做一个没有商业逻辑的主键代替以前Primary Key

猜你喜欢