Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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 如何在hibernate注释中使用级联类型save、delete、update_Java_Hibernate - Fatal编程技术网

Java 如何在hibernate注释中使用级联类型save、delete、update

Java 如何在hibernate注释中使用级联类型save、delete、update,java,hibernate,Java,Hibernate,有人能给我解释一下hibernate注释如何使用不同类型的级联,比如delete、upadte、save-update吗 我如何确保当车主被删除时,其汽车也被删除(但不是相反) 这里的陷阱是有两个级联类型枚举。一个是javax.persistence,另一个是hibernate。一般来说,我更喜欢使用持久性 对于级联更新,请记住“更新”是一个hibernate术语,jpa不知道这一点。Jpa不需要它,因为在Jpa中,更新的字段将自动刷新到数据库中。如果你在关系上做了任何改变,这些也会随之改变。因

有人能给我解释一下hibernate注释如何使用不同类型的级联,比如delete、upadte、save-update吗

我如何确保当车主被删除时,其汽车也被删除(但不是相反)


这里的陷阱是有两个级联类型枚举。一个是javax.persistence,另一个是hibernate。一般来说,我更喜欢使用持久性

对于级联更新,请记住“更新”是一个hibernate术语,jpa不知道这一点。Jpa不需要它,因为在Jpa中,更新的字段将自动刷新到数据库中。如果你在关系上做了任何改变,这些也会随之改变。因此,您不需要在更新时进行级联

对于保存更新,这是一个hibernate快捷方式,可以根据对象的状态使用持久化或更新。由于您已经介绍了persist和update(见上文),因此不需要对其进行级联

要级联删除,您可能需要使用
@orphanRemoving
。这将确保如果关系的父级被删除,子级也会消失(但不是相反)


也许知道为什么你们对我的问题投了反对票?我在谷歌上搜索了很多来找到答案,但我不知道如何使用我读到的一个,所有的都在xml映射中,而不是在注释中,如果你给我发送链接那就太好了。这一个很好:“不理解”是一个太广泛的问题。为了得到一个好的答案,这个问题必须有重点。如果您发现了一个您不理解的特定部分,请询问该部分,最好使用代码示例。如果您还没有理解本教程的原则,StackOverflow将不会有多大帮助-您将不得不返回一步,重复介绍性材料。我从您的链接中了解到一点,我怀疑如果我删除车主,我也想删除车,但如果删除车,我不想删除车主u来执行此操作。mappedBy=“owner”,你能解释一下吗?@user3214269这是你自己的代码。。。看见
 @Entity
    public class Owner
    {
        @OneToOne(cascade=CascadeType.ALL)
        private DrivingLicense license;

        @OneToMany(mappedBy="owner", cascade={CascadeType.PERSIST, CascadeType.MERGE})
        private Collection cars;

        ...
    }

    @Entity
    public class DrivingLicense
    {
        private String serialNumber;

        ...
    }

    @Entity
    public class Car
    {
        private String registrationNumber;

        @ManyToOne(cascade={CascadeType.PERSIST, CascadeType.MERGE})
        private Owner owner;

        ...
    }
    @OneToMany(mappedBy="owner", cascade={CascadeType.PERSIST, CascadeType.MERGE})
    @OrphanRemoval
    private Collection cars;