删除引用/一对多关系,而不是"Nulling"列



我们有两个实体:

public class User {
  @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
  @JoinColumn(name = "user_id", insertable = true, updatable = true)
  @ElementList(name = "tabledata")
  public List<MyUserTableData> tableData = new ArrayList<MyUserTableData>();
}
public class MyUserTableData {
  public Long user_id;
}

我所做的操作是从 u.tableData 中删除一个条目,然后调用 EntityManager 进行合并 (u)。

OpenJPA 将通过在 MyUserTableData 中设置相应的记录来从 User 对象中删除该条目,user_id = "null"。

但我想要的是,如果从用户中删除该条目,它也应该从 MyUserTableData 中删除记录,而不仅仅是 NULL 列user_id。

如何强制 OpenJPA 删除与 OneToMany 相关的条目,而不是在列中放置一个空值?

我不会接受那些认为我的数据库架构不好的答案:)表MyUserTableData基本上是一个外键表,它将用户连接到另一个实体,但包含比外键更多的信息,它向外键添加一些既不属于用户也不属于其他实体的元数据。

谢谢!

塞巴斯蒂安

我能够解决我的问题:

http://openjpa.apache.org/builds/1.0.4/apache-openjpa-1.0.4/docs/manual/manual.html#dependent

@ElementDependent => 完全符合我的意愿。

最新更新