JPA管理实体问题

时间:2014-08-06 21:42:09

标签: database hibernate jpa locking

我正在使用JPA,我有一个名为User的实体,并且发现User by id从数据库中获取给定id的用户

for ( String id: ids) {
    User u = getUser(id);
    u.setName(smthing); // fires one update statement
    u.setDate(smthing); // fires another update statement

}

getUser返回一个托管实体,因此任何集合都会导致更新语句,当dao关闭时,这些语句将被提交。但问题是用户有一个@version字段,因为有多个更新在提交时运行,它以某种方式不会更新列表中的最后一个用户。这种情况持续发生所以这不是一个间歇性的问题。

User {
    @Version
    Date lastUpdatedDate;
}

有人遇到类似的问题。我的理想选择是以分离模式获取这些用户对象,设置值然后进行批量更新。任何帮助表示赞赏。

0 个答案:

没有答案