我希望在分离之前更新对象,但是虽然它似乎已更新,但数据库不会更新。也许最好的办法就是把我想要的东西用来做。
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。有可能吗?
还有其他提示吗?
提前致谢