JPA 不急切地加载所有内容

2024-01-24

我在通过 OpenJPA 实现利用 JPA 1.0 时遇到问题。我的数据模型由一个 Trip 组成,该 Trip 与 Leg 具有一对多关系,与 Passenger 具有一对多关系。 Leg 和 Passenger 在 PassengerLeg 中有关联。这被映射为双向 OneToMany/ManyToOne。所以本质上我的数据模型中有一颗钻石。如果一次行程有 2 条航段和 3 名乘客,则将有 6 条乘客航段。对于各种用例,我需要从每个实体的各个方向进行。现在,当我尝试急切地加载所有内容时,PassengerLeg 中的leg 字段将为空,我不明白为什么。这是我的课程的简要表示:

@Entity
public class Trip {

  @OneToMany(mappedBy = "trip", fetch = FetchType.EAGER)
  private List<Leg> legs;

  @OneToMany(mappedBy = "trip", fetch = FetchType.EAGER)
  private List<Passenger> passengers;

}

@Entity
public class Leg {

  @ManyToOne
  @JoinColumn(name = "TRIP_ID")
  private Trip trip;

  @OneToMany(mappedBy = "leg", fetch = FetchType.EAGER)
  private List<PassengerLeg> passengers;

}

@Entity
public class Passenger {

  @ManyToOne
  @JoinColumn(name = "TRIP_ID")
  private Trip trip;

  @OneToMany(mappedBy = "passenger", fetch = FetchType.EAGER)
  private List<PassengerLeg> legs;

}

@Entity
public class PassengerLeg {

  @ManyToOne
  @JoinColumn(name = "LEG_ID")
  private Leg leg; //this will be null

  @ManyToOne
  @JoinColumn(name = "PASSENGER_ID")
  private Passenger passenger;

}

我花了无数的时间阅读文档和我在谷歌上找到的任何东西来找出可能导致这种情况的原因,但我没有任何运气。任何人都知道什么会导致这种情况?如果您需要有关类/注释的更多信息,请告诉我。


JPA 永远不会急切地加载多方,因为这可能是一项耗时的操作。默认获取 如 JPA 规范中所述

  1. 一对一--->获取渴望
  2. 一对多 ---> 惰性获取
  3. 多对一---> fetch Eager
  4. 多对多---> 惰性获取

我也不会建议您使用 Eager fetch,因为它是繁重的操作

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JPA 不急切地加载所有内容 的相关文章

  • 添加动态数量的监听器(Spring JMS)

    我需要添加多个侦听器 如中所述application properties文件 就像下面这样 InTopics Sample QUT4 Sample T05 Sample T01 Sample JT7 注意 这个数字可以多一些 也可以少一些
  • JPA 支持查询 Postgres JSON 字段

    JPA 是否已经支持处理 JSON 字段的查询 如下所示 select from person where info gt gt age numeric 40 select from person where info gt gt firs
  • 对话框上的 EditText 不返回任何文本

    我太累了 找不到错误 我没有发现任何错误 但我没有从 editText 收到任何文本 请看下面的代码 活动密码 xml
  • Java:使用 HttpURLConnection 的 HTTP PUT

    如何执行 HTTP PUT 我正在使用的类似乎认为它正在执行 PUT 但端点将其视为我执行了 GET 我做错了什么吗 URL url new URL https HttpURLConnection conn HttpURLConnectio
  • 如何在 JSP 中导入类?

    我是一个完全的JSP初学者 我正在尝试使用java util List在 JSP 页面中 我需要做什么才能使用除以下类之外的类java lang 使用以下导入语句进行导入java util List 顺便说一句 要导入多个类 请使用以下格式
  • 在 HTTP 标头中发送 UTF-8 值会导致 Mojibake

    我想使用 servlet 发送阿拉伯语数据HTTPServletResponse给客户 我正在尝试这个 response setCharacterEncoding UTF 8 response setHeader Info arabicWo
  • 记录骆驼路线

    我的项目中有几个 Camel 上下文 如果可能的话 我想以逆向工程方式记录路线 因为我们希望保持与上下文相关的文档最新 最好的方法是什么 我们倾向于预先实际设计路线 并使用来自EIP book http www eaipatterns co
  • 在java中实现你自己的阻塞队列

    我知道这个问题之前已经被问过并回答过很多次了 但我只是无法根据互联网上找到的示例找出窍门 例如this http tutorials jenkov com java concurrency blocking queues html or t
  • 具有共享依赖项的多模块项目的 Gradle 配置

    使用 gradle 制作第一个项目 所以我研究了 spring gradle hibernate 项目如何组织 gradle 文件 并开始制作自己的项目 但是 找不到错误 为什么我的配置不起作用 子项目无法解决依赖关系 所以项目树 Root
  • 隐式超级构造函数 Person() 未定义。必须显式调用另一个构造函数?

    我正在开发一个项目 但收到错误 隐式超级构造函数 Person 未定义 必须显式调用另一个构造函数 我不太明白它 这是我的人物课程 public class Person public Person String name double D
  • 如何将 Jfreechart(饼图)添加到 netbeans 的面板中

    我正在使用 netbeans gui 编辑器 并且正在尝试添加一个本身位于内部框架中的 Jfreechart 并且这个内部框架我想将其添加到面板中 正如您在此图中看到的那样 抱歉 我无法直接发布图像 因为我新手 http www flick
  • 计算日期之间的天数差异

    在我的代码中 日期之间的差异是错误的 因为它应该是 38 天而不是 8 天 我该如何修复 package random04diferencadata import java text ParseException import java t
  • Cloudfoundry:如何组合两个运行时

    cloundfoundry 有没有办法结合两个运行时环境 我正在将 NodeJS 应用程序部署到 IBM Bluemix 现在 我还希望能够执行独立的 jar 文件 但应用程序失败 APP 0 bin sh 1 java not found
  • Spring Security OAuth2简单配置

    我有一个简单的项目 需要以下简单的配置 我有一个 密码 grant type 这意味着我可以提交用户名 密码 用户在登录表单中输入 并在成功时获得 access token 有了该 access token 我就可以请求 API 并获取用户
  • 在 Spring Boot Actuator 健康检查 API 中启用日志记录

    我正在使用 Spring boot Actuator APIproject https imobilenumbertracker com 拥有一个健康检查端点 并通过以下方式启用它 management endpoints web base
  • 如何通过 Inno Setup for NetBeans 使用自定义 .iss 文件

    我将 Inno Setup 5 与 NetBeans 8 一起使用 并且我已经能够创建一个安装程序来安装该应用程序C users username local appname 但是我希望将其安装在C Programfiles 我如何在 Ne
  • 对象锁定私有类成员 - 最佳实践? (爪哇)

    I asked 类似的问题 https stackoverflow com questions 10548066 multiple object locks in java前几天 但对回复不满意 主要是因为我提供的代码存在一些人们关注的问题
  • 如何在 Quartz 调度程序中每 25 秒运行一次?

    我正在使用 Java 的 Quartz Scheduling API 你能帮我使用 cron 表达式每 25 秒运行一次吗 这只是一个延迟 它不必总是从第 0 秒开始 例如 序列如下 0 00 0 25 0 50 1 15 1 40 2 0
  • JSON 到 hashmap (杰克逊)

    我想将 JSON 转换为 HashMapJackson http jackson codehaus org 这是我的 JSON String json Opleidingen name Bijz trajecten zorg en welz
  • Java:多线程内的 XA 事务传播

    我如何使用事务管理器 例如Bitronix http docs codehaus org display BTM Home JBoss TS http www jboss org jbosstm or Atomikos http www a

随机推荐

  • 动态分配堆栈内存

    有这样的代码 include
  • 无人值守的现场部署 Android 手机的远程应用程序更新和重启?

    我们将在偏远的现场部署数百部现成的 Android 手机 以实现无人值守操作 作为科学研究项目的一部分 他们将运行我们开发的应用程序 用于接收 处理附近蓝牙传感器的数据并将数据转发到中央服务器 这些设备将能够访问互联网 我们与手机 应用程序
  • 根据列中的值选择行

    我有一个制表符分隔的表 我想打印其中列 x 大于 Y 的所有行 我尝试使用下面的代码 但对使用 awk 很陌生 所以不确定如何根据列使用它 awk X gt Y print Table txt cat gt Wanted lines Y 的
  • 如何让“python”在 WSL bash 中运行 Python 3?

    当我打字时python进入 Windows 10 Home 中的 bash shell 适用于 Linux 的 Windows 子系统 时 我收到以下错误消息 The program python can be found in the f
  • 如何使用 AFOAuth2Manager 自动刷新过期令牌?

    我正在为受 OAuth2 保护的服务器编写一个小型 iOS 客户端 我想知道是否可以使用AFOAuth2Manager here https github com AFNetworking AFOAuth2Manager自动刷新过期的令牌
  • NSURLSessionDownloadTaskDelegate JSON 响应

    我正在运行后台 NSURLSession 会话 并且正在尝试找出一种方法来从 NSURLDownloadTaskDelegate 回调之一中获取 JSON 响应 我已将会话配置为接受 JSON 响应 NSURLSessionConfigur
  • 超类不匹配、Struct、重载和 Spork

    假设有下面的类 derp rb class Derp lt Struct new id end When I load derp rb 程序失败两次TypeError superclass mismatch for class Derp 好
  • std::string::find() 的问题

    我在使用 std string find 时遇到麻烦 我通过以下代码从控制台读取字符串 50 while command find exitString 0 51 std cout lt lt 52 getline std cin comm
  • 数组返回类型

    include
  • Web 服务具有“无此类操作:HTTP GET PATH_INFO”

    我目前有一个 SOAP Web 服务 我正在尝试访问它的端点 但我不断收到此错误
  • Flask - 异步渲染模板

    我正在制作一个 Flask 应用程序 我想知道是否可以渲染路线模板 但在功能完成后重定向用户 目前使用Python 2 7这是我的例子 app route loading matched def match time match retur
  • 在 Django 管理中设置内联条件

    我有一个模型 希望工作人员能够在活动日期之前对其进行编辑 像这样 class ThingAdmin admin ModelAdmin model Thing if obj date lt today Something like that
  • 从 Aave 提款会导致“错误交易已恢复”

    我正在运行一个示例 它将 Aave 代币存入 Aave 中 我正在使用提供的代码合同示例Aave v2 github https github com aave code examples protocol tree main V2 Cre
  • 用于简单消息传递应用程序的 Cassandra 数据模型

    我正在尝试学习 Cassandra 并且总是发现最好的方法是从创建一个非常简单且小型的应用程序开始 因此 我正在创建一个基本的消息应用程序 它将使用 Cassandra 作为后端 我想做以下事情 用户将使用用户名 电子邮件和密码创建一个帐户
  • 一个类什么时候应该是 Comparable 和/或 Comparator?

    我见过同时实现这两个功能的类可比 and 比较器 这是什么意思 我为什么要使用其中一种而不是另一种 以下文字来自比较器与可比较器 http www digizol com 2008 07 java sorting comparator vs
  • CIDR 地址不在 VPC 的 CIDR 地址范围内

    我已在适用于 AWS 的新 VPC 上尝试了 CIDR 块的所有 IP 范围组合 我当前的 CIDR 是172 31 0 0 16 171 31 0 0 32 CIDR Address is not within CIDR Address
  • SignalR 不使用服务器上的会话

    当我尝试访问HttpContext从 HUB 返回的当前会话null 我尝试使用该界面IRequiresSession但它不起作用 有人能帮我吗 SignalR 连接 包括客户端所有 Hub 操作的底层连接 不支持会话状态 如果您愿意 您可
  • Python SqlAlchemy 实用生成表类

    给定表名列表 我尝试以编程方式生成 SqlAlchemy 数据库表类 这是我所做的 def generate table class list engine base declarative base engine table names
  • SSDT 未解决参考错误 SQL71561

    我已将数据库导入到数据库项目中 但一开始我就收到了 200 多个有关未解析引用的错误 现在我已经阅读了一些像这样的帖子和网站 http blogs msdn com b bahill archive 2009 08 26 using sel
  • JPA 不急切地加载所有内容

    我在通过 OpenJPA 实现利用 JPA 1 0 时遇到问题 我的数据模型由一个 Trip 组成 该 Trip 与 Leg 具有一对多关系 与 Passenger 具有一对多关系 Leg 和 Passenger 在 PassengerLe