java - 当你更新它的子版本时,如何级联更新@Version?

标签 java orm playframework-2.0 persistence ebean

问题:

我有一个父类,其属性“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

非常感谢... =)

最佳答案

登录为 https://github.com/ebean-orm/avaje-ebeanorm/issues/155

4.1.1 中将通过 markAsDirty() 方法支持。

p.markAsDirty();
p.update();

关于java - 当你更新它的子版本时,如何级联更新@Version?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24421129/

相关文章:

java - 如何在 JTextField 中使用 2 个 JComboBox 中的值?

java - 如何从外部配置文件设置 hibernate 数据库配置?

java - 使用 servlet 从 Apache 中删除文件

java - 根据两个标准对列表进行排序的最佳算法是什么?

java - jpa合并不起作用

python - 错误详细信息 : Field `af` does not exist

由回调驱动的 Java/Scala Future

playframework - IntelliJ IDEA 可以自动导入 Play 依赖项吗?

java - play2 调用子模块中的 Controller 、模型、 View

在程序的新运行中重新加载时出现 Java 序列化错误,但不是在同一次运行中