Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.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 JPA级联注释和Hibernate级联注释之间的区别_Java_Hibernate_Hibernate Annotations_Hibernate Cascade - Fatal编程技术网

Java JPA级联注释和Hibernate级联注释之间的区别

Java JPA级联注释和Hibernate级联注释之间的区别,java,hibernate,hibernate-annotations,hibernate-cascade,Java,Hibernate,Hibernate Annotations,Hibernate Cascade,我尝试了一些Hibernate注释的实践。当我尝试使用级联时,在Eclipseintellisense中有两个选项: javax.persistence.CascadeType and org.hibernate.annotations.CascadeType 在hibernateCascadeType中,与JPA的选项相比,有许多选项 两者之间有什么优势吗?javax.persistence注释是一种标准规范。hibernate注释表示hibernate的特定实现。它们大部分是重叠的

我尝试了一些Hibernate注释的实践。当我尝试使用级联时,在Eclipseintellisense中有两个选项:

    javax.persistence.CascadeType and org.hibernate.annotations.CascadeType
在hibernateCascadeType中,与JPA的选项相比,有许多选项


两者之间有什么优势吗?

javax.persistence注释是一种标准规范。hibernate注释表示hibernate的特定实现。它们大部分是重叠的,但是Hibernate级联类型提供了一些特定于Hibernate的附加选项

通常,尽可能使用javax.persistence注释。仅当您需要Hibernate特定的选项之一并且知道可能永远不需要切换到其他持久性提供程序时,才使用Hibernate变体

许多人在同一个项目中混合使用JPA/Hibernate注释,这是一种有效的做法。但是,可能会有一些微妙的交互作用,如涉及级联类型的交互作用:

看看代码,@OneToMany来自JPA,它期望JPA级联- javax.persistence.CascadeType。但是,当您使用Hibernate保存它时 会话org.hibernate.engine.Cascade将执行以下检查

休眠保存进程将导致操作\u保存\u更新操作, 但是JPA会通过一个持久化和合并的动作,它不会 匹配并导致级联无法执行