Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Data JPA-OneToMany儿童应被视为单一资源_Java_Spring_Hibernate_Jpa_Spring Data Jpa - Fatal编程技术网

Java Spring Data JPA-OneToMany儿童应被视为单一资源

Java Spring Data JPA-OneToMany儿童应被视为单一资源,java,spring,hibernate,jpa,spring-data-jpa,Java,Spring,Hibernate,Jpa,Spring Data Jpa,使用Spring数据JPA1.11.6.RELEASE,我遇到以下问题 通过它们之间简单的1对n关系,我得到了TableA,和TableB,其中a包含多个B。我有RepoA,它不仅修改了TableA,而且还修改了TableB,作为一个受抚养的孩子 从这个意义上讲,当我在DB中有以下内容时(用JSON编写实体) 我想通过RepoA,更新TableA,从而更新TableB { "uuid": "f10cdd75-ffbe-49e6-b7a5-ad6f8e15b2b5", "name"

使用Spring数据JPA1.11.6.RELEASE,我遇到以下问题

通过它们之间简单的1对n关系,我得到了
TableA
,和
TableB
,其中
a
包含多个
B
。我有
RepoA
,它不仅修改了
TableA
,而且还修改了
TableB
,作为一个受抚养的孩子

从这个意义上讲,当我在DB中有以下内容时(用JSON编写实体)

我想通过
RepoA
,更新
TableA
,从而更新
TableB

{
    "uuid": "f10cdd75-ffbe-49e6-b7a5-ad6f8e15b2b5",
    "name": "title",
    "listOfB": [{
        "pk": 2
    }, {
        "pk": 3
    }]
}
但是由于Hibernate遵循其著名的操作顺序,我得到了约束冲突,它尝试插入所有相关的
TableB
值,而不删除原始值

是否无法以任何方式覆盖
表B
实体?我能够找到这个解决方案

select `TableA` with `TableB` values
clear `"listOfB"`
save & flush `TableA` // deletes all current `TableB`
add new `B`'s to `"listOfB"`
save again

但是它非常费劲,而且丑陋,加上我有越多这样的表,我必须编写更多这样的代码。我不能在
JPA
中有一些定义来自动允许这种行为吗?不要将此表视为适当的表,而仅将其视为基本资源,在所有更新请求中都应覆盖此表?

发布这些实体。@ChackoMathew正如我在问题中所说,我已经用JSON发布了这些实体,请在评论之前阅读……对不起,我不清楚。我要求为表提供java实体类。这个或这个应该会有帮助
select `TableA` with `TableB` values
clear `"listOfB"`
save & flush `TableA` // deletes all current `TableB`
add new `B`'s to `"listOfB"`
save again