• sping data jpa 共享主键 OneTonOne 延时加载


    当我们使用spring boot创建项目时,系统默认使用的是如下parent。

     <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.6.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>

    可能不同时期版本不同,而spring boot的一大优势就是starter依赖,比如我们使用jpa就可以直接引用:

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>

    配置好数据库后,就可以使用jpa开发了,我们不用管版本的问题,但是当我们遇到OneToOne 共享主键的情况下,从表居然不能延时加载

    经过测试发现就是jpa中的hibernate的版本问题,

    jpa starter中使用的版本是:

    <dependency>
          <groupId>org.hibernate</groupId>
          <artifactId>hibernate-core</artifactId>
          <version>5.3.10.Final</version>
          <scope>compile</scope>
          <exclusions>
            <exclusion>
              <artifactId>jboss-transaction-api_1.2_spec</artifactId>
              <groupId>org.jboss.spec.javax.transaction</groupId>
            </exclusion>
          </exclusions>
        </dependency>

    当我们使用较新版本时,问题得以解决:

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
                <exclusions>
                    <!-- 排除自带的logback依赖 -->
                    <exclusion>
                        <groupId>org.hibernate</groupId>
                        <artifactId>hibernate-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>5.4.3.Final</version>
            </dependency>

    主表配置如下:

        @OneToOne(fetch = FetchType.LAZY)
        @MapsId()
        @JoinColumn(name = "id")
        private PersonDetail personDetail;

    从表不用任何配置。

  • 相关阅读:
    Codeforces Round #201 (Div. 2)C.Alice and Bob
    1126. Magnetic Storms(单调队列)
    URAL1501. Sense of Beauty(记忆化)
    poj1026Cipher(置换群)
    怎样查看MySql数据库物理文件存放位置
    冒泡排序、选择排序、二分查找排序
    java中的数组的Arrays工具类的使用
    可变参数及其特点
    猜拳游戏项目(涉及知识点Scanner、Random、For、数组、Break、Continue等)
    java中使用nextLine(); 没有输入就自动跳过的问题?
  • 原文地址:https://www.cnblogs.com/hankuikui/p/11167988.html
Copyright © 2020-2023  润新知