Spring Data JPA - OneToMany子项应被视为单个资源

时间:2017-09-15 00:22:04

标签: java spring hibernate jpa spring-data-jpa

使用Spring Data JPA 1.11.6.RELEASE,我遇到以下问题;

在它们之间有一个简单的1对n关系,我有TableATableB,其中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中有一些定义来自动允许这种行为吗?不要将此表视为正确的表,而只是作为基本资源,应该在所有更新请求中覆盖?

0 个答案:

没有答案