删除引用的/ OneToMany关系而不是“Nulling”列

时间:2012-10-04 12:02:55

标签: java jpa one-to-many openjpa

我们有两个实体:

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将通过使用user_id =“null”在MyUserTableData中设置相应记录来从User对象中删除条目。

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

如何强制OpenJPA删除OneToMany相关条目而不是在列中放置null?

我不接受那些假设我的数据库模式不好的答案:)表MyUserTableData基本上是一个外键表,它将用户连接到另一个实体但是只保存了一些外键的信息,它添加了一些元数据到外键,既不属于用户也不属于另一个实体。

谢谢!

塞巴斯蒂安

1 个答案:

答案 0 :(得分:0)

我能够解决我的问题:

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

@ElementDependent =&gt;完全符合我的要求。