我在属性" lastUpdate" 上有一个带有 @Version 的父类,用于并发检查。这个父类有一个 @OneToMany 关系,当我更新它的孩子时,我想更新字段" lastUpdate"本身就像我更新其他字段时发生的那样。
在 JPA 中有 @OptmisticLocking(cascade = true)来执行此操作,但我找不到 Ebean ORM的类似选项在Play2中。
重要:类之间没有CascadeType。
@Entity
public class Child extends Model {
@ManyToOne()
@JoinColumn(name="parent_id")
public Parent parent;
}
@Entity
public class Parent extends Model {
@Version
public Date lastUpdate;
@OneToMany(mappedBy = "parent")
public List<Child> children = new ArrayList<Child>();
}
public class Application extends Controller {
public void updateChild(Parent p, Child c) {
...
c.save(); // or c.update()
p.children.set(c); // imagine a real code here updating, adding or removing a child.
p.update();
return;
}
}
您可以在此处找到类似的问题: Version of parent object is not incremented if one-to-many relationship of the parent object is modified
非常感谢... =)
答案 0 :(得分:1)
记录为https://github.com/ebean-orm/avaje-ebeanorm/issues/155
将使用markAsDirty()方法在4.1.1中支持。
p.markAsDirty();
p.update();