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或JPA注释_Java_Hibernate_Jpa - Fatal编程技术网

Java 要使用的Hibernate或JPA注释

Java 要使用的Hibernate或JPA注释,java,hibernate,jpa,Java,Hibernate,Jpa,我在项目中使用Hibernate,并对Hibernate域Pojo对象进行基于注释的配置。对于基于注释的配置,我们有两个选项 使用javax.persistence.* 使用Hibernate本机注释org.Hibernate.Annotations.* 目前,我们对POJO文件使用基于JPA的注释配置,并使用Hibernate本机API(如SessionFactory、Session等)打开会话并执行DB操作 我有以下问题: 混合使用JPA注释和Hibernate是否有问题 本机API 这就解

我在项目中使用Hibernate,并对Hibernate域Pojo对象进行基于注释的配置。对于基于注释的配置,我们有两个选项

  • 使用
    javax.persistence.*
  • 使用Hibernate本机注释
    org.Hibernate.Annotations.*
  • 目前,我们对POJO文件使用基于JPA的注释配置,并使用Hibernate本机API(如SessionFactory、Session等)打开会话并执行DB操作

    我有以下问题:

  • 混合使用JPA注释和Hibernate是否有问题 本机API
  • 这就解释了这样一个问题 (级联jpa hibernate注释常见错误)
  • 请提供您的专业知识,使用哪种类型的注释
  • JPA
  • 冬眠本地人
  • 把它们都混在一起

  • Hibernate提供了一种JPA实现。如果您在代码中使用纯JPA,那么如果出现需求,您可以自由地更改为不同的实现。例如,和是不同客户可能需要的实现。下面是一个全面的实现列表


    如果您被迫使用hibernate提供的任何不在JPA规范中的外来特性,那么您应该在代码库中使用hibernate特定的API。来自hibernate论坛的相关讨论。

    我们混合了一些注释,因为在我们当时使用的hibernate版本中,JPA规范中没有一些功能。例如,要在数据库中将布尔值存储为“Y”或“N”,可以使用hibernate类型。但当时JPA规范中没有这样的特性。我不知道现在的情况。同样对于孤儿移除,在那些日子JPA也没有这个功能,但是现在我相信他们在你的级联选项中提供了一个叫做孤儿移除的属性。此外,您还可以使用@BatchSize等特定功能来提高行李的抓取性能。我不知道JPA规范中是否有这些特性

    根据我的经验,如果您不需要从一个ORM切换到另一个ORM,那么混合和匹配两者的加分将是有益的