【发布时间】:2010-11-24 14:53:28
【问题描述】:
我在持久对象(通过查询检索)和新创建的瞬态对象(使用 new 创建,尚未持久化)之间存在多对多关系。 它们通过@JoinTable 关联进行连接,例如:
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name = "adccollectiontype_cn_node_type", joinColumns = {
@JoinColumn(name = "idadccollectiontype")
}, inverseJoinColumns = {
@JoinColumn(name = "idcn_node_type")
})
在另一端:
@ManyToMany(mappedBy="cnNodeTypes", cascade=CascadeType.ALL)
注意CascadeType.ALL。
如果我只是通过将每个对象添加到另一个对象的集合中来创建这两个对象之间的关联,然后再持久化(另一个对象,并且依赖于级联),那么连接表不会更新。
但是,如果我在进行关联之前手动 persist 瞬态对象,它似乎可以工作。
现在我试图找到一些关于这个案例的信息,为什么以及如何工作,但我找不到任何解释。也许有人可以启发我,我的假设是否正确,以及背后的原因。
【问题讨论】:
标签: eclipselink jpa-2.0 java-ee-6