使用Spring Data JPA 1.11.6.RELEASE,我遇到以下问题;
在它们之间有一个简单的1对n关系,我有TableA
和TableB
,其中A
包含多个B
。我有RepoA
,它不仅会修改TableA
,还会修改TableB
作为受抚养子女。
从这个意义上说,当我在DB中有以下内容(用JSON编写实体)时;
{
"uuid": "f10cdd75-ffbe-49e6-b7a5-ad6f8e15b2b5",
"name": "title",
"listOfB": [{
"pk": 1
}, {
"pk": 2
}]
}
我希望更新TableA
,并通过TableB
更新RepoA
以及{
"uuid": "f10cdd75-ffbe-49e6-b7a5-ad6f8e15b2b5",
"name": "title",
"listOfB": [{
"pk": 2
}, {
"pk": 3
}]
}
;
TableB
但是由于Hibernate遵循其着名的操作顺序,我得到了约束违规,它试图插入所有依赖的TableB
值,而不删除原始值。
有没有办法以任何方式覆盖select `TableA` with `TableB` values
clear `"listOfB"`
save & flush `TableA` // deletes all current `TableB`
add new `B`'s to `"listOfB"`
save again
个实体?我能够找到这个解决方案;
JPA
但它非常费力,而且很难看,加上我拥有的表格越多,我写的代码就越多。我不能在resize
中有一些定义来自动允许这种行为吗?不要将此表视为正确的表,而只是作为基本资源,应该在所有更新请求中覆盖?