|
|
1
16
最短的答案似乎是你不能,这是有道理的。在双向多对多关联中,一方必须是主关联,并用于持久化对基础联接表的更改。由于JPA不会维护关联的两边,所以最终可能会出现一种内存情况,一旦存储在数据库中,就无法重新加载这种情况。 例子:
如果此状态可以持久化,您将在联接表中得到以下条目:
但是在装载之后,JPA怎么知道你只想让B知道A2而不是A1?不应该知道b的a2呢? 这就是为什么您必须自己维护双向关联(并使上面的示例不可能到达,甚至在内存中)并且JPA将仅基于其一侧的状态而持久。 |
|
|
2
3
是否指定了反向联接列?
假设有一个名为a_b的联接表,其中包含列a_id和b_id。 |
|
|
3
1
|
|
|
4
0
是否尝试将mappedby参数添加到类B中的a字段中,就像这样?
|
|
|
5
0
也许在答案中有一个小错误。 我认为应该是: @Entity
class B {
@ManyToMany
@JoinTable (
name="A_B",
joinColumns = {@JoinColumn(name="B_ID")},
inverseJoinColumns = {@JoinColumn(name="A_ID")}
)
private List a;
..
}
|
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |