seam中我用entitymanager.merge(object obj)更新对象的问题
yuzexu
2008-10-29
seam中我用entitymanager.merge(object obj),entitymanager.flush();更新对象,但在另一个页面中重新查询该对象时,还是更新前的,我该怎么写?
entitymanager.createQuery('from Dept as d where d.id=1").getSingleResult(); |
|
SSailYang
2008-10-29
用 refresh 试试
|
|
yuzexu
2008-10-29
我试了,不行,如果让两个页面的数据同步,必须得在取数据之前用entitymanager.clear();
|
|
mtiger2k
2008-11-03
那应该是entitymanager.merge(object obj)没成功。
可能的原因:obj的ID不存在数据库中。 可以贴出完整过程吗? |
|
yuzexu
2008-11-04
成功了,数据库中已经更新了,是因为要刷新的那个页面的会话一直没有结束的缘故,
|
|
wetouns
2008-11-07
如果不结束会话,datamodel的数据就会被保存,但它里边的数据与数据库中的数据不会保持同步,如果不想结束会话,可以再次调用datamodel的初始化方法来达到更新的目的
|
|
bianqioujin
2008-12-29
如果结束会话的话,可以通过<end-conversation before-redirect="true"/>
|