使用merge更新分离的对象不会更新数据库

时间:2014-03-31 16:25:50

标签: hibernate

我希望在分离之前更新对象,但是虽然它似乎已更新,但数据库不会更新。也许最好的办法就是把我想要的东西用来做。

Session session = sessionFactory.openSession();
Object entity1 = (Object) session.get(Object.class, 1);        
session.close();

//I think this is where the problems lies as the Object I want to merge is quite      //complex

ObjectChild entitychild = entity1.getEntityChild();
entitychild.setData("data") ;

Session newSession = sessionFactory.openSession();
Transaction transaction = newSession.beginTransaction();        
Object mergedEntity = (Object) newSession.merge(entity1); 
transaction.commit(); //will cause an update to occur here
newSession.close();

当我尝试从nergedEntityObject中检索值时,我得到了正确的值:

ObjectChild entitychild = entity1.getEntityChild();
String updateData = entitychild.getData() ;

updateData的值是“data”,但这不会反映在数据库中。

无论如何都要解决这个问题?我一直在寻找,我不知道如何处理这个问题。我是新来的冬眠,但我已经为此奋斗了两天。我在考虑:

尝试在应用新值后比较第一个对象和分离对象之间的差异,这样我就可以合并ObjectChild而不是整个Object。有可能吗?

还有其他提示吗?

提前致谢

0 个答案:

没有答案