插入@OneToMany批注内的CascadeType选项与插入@Cascade内的CascadeType选项有什么区别?哪个是优先级,是被忽略的两个之一吗?

    @OneToMany(mappedBy="page", fetch=FetchType.EAGER, cascade = {CascadeType.REMOVE, CascadeType.PERSIST})
    @Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.DELETE})
    private List<Tag> tags;

最佳答案

没有区别。

如果OneToMany是JPA批注(javax.persistence.OneToMany),则不能在内部使用Hibernate'cascade'。您必须使用JPA级联。

@Cascade注释特定于休眠而不是JPA。

当您编写类似:CascadeType.SAVE_UPDATE的内容时,这意味着在使用休眠方法'saveOrUpdate'时将使用级联,因此在使用休眠方法保存,删除...对象时,将使用@Cascade批注。如果使用JPA方法,请在@OneToMany批注内使用层叠。

关于java - Hibernate CascadeType内部关联注释与外部,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30615771/

10-09 09:20