Spring Data、JPA @OneToMany Lazy fetch 在 Spring Boot 中不起作用

2024-05-08

I have @OneToMany之间的关系FabricRoll and FabricDefect.

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "fabric_roll_id", referencedColumnName = "fabric_roll_id")
private Set<FabricDefect> fabricDefects = new HashSet<>();

问题是当我得到FabricRoll by JpaRepository功能

找到所有()

同事FabricDefect也已加载。

我只想加载FabricRoll and FabricDefect应该在调用函数时加载getFabricDefect()

Fabric Roll ServiceImpl 类

@Component
public class FabricRollServiceImpl implements IFabricRollService{
    @Autowired
    FabricRollRepository fabricRollRepository;

    @Transactional(propagation = Propagation.REQUIRED)
    @Override
    public List<FabricRoll> getAllFabricRoll() {
        FabricRoll fabricRoll1 = new FabricRoll();
        fabricRoll1.setBatchNo("34344");
        fabricRoll1.setLotNo("425");
        fabricRoll1.setPoNo("42");
        fabricRoll1.setRollLength(2343);
        fabricRoll1.setRollNo("356");
        fabricRoll1.setRollWidth(60);
        fabricRoll1.setStyleNo("354");

        FabricDefect fabricDefect = new FabricDefect();
        fabricDefect.setDefectNote("note");
        fabricDefect.setDefectPoint(3);
        fabricDefect.setSegment(3);
        fabricDefect.setYard(42);


        Set<FabricDefect> fabricDefects = new HashSet<>();
        fabricDefects.add(fabricDefect);


        fabricRoll1.setFabricDefects(fabricDefects);

        addFabricRoll(fabricRoll1);

        FabricRoll fabricRoll = null;


        return fabricRollRepository.findAll();
    }

@Override
public void addFabricRoll(FabricRoll fabricRoll) {
    fabricRollRepository.save(fabricRoll);
}

}

Break point: enter image description here

Console: enter image description here


看来是一个调试神器。

在调试时,由于事务仍处于打开状态,因此将在断点评估时加载监视的延迟加载实体属性。

要检查“生产”行为,您应该插入em.detach在断点之前声明或使用日志记录(按照 Manza 的建议)并检查em.getEntityManagerFactory().getPersistenceUnitUtil().isLoaded(fabricRoll1.fabricDefects())对分离的实体返回 false。

(记住注入 EntityManager 例如通过声明@PersistenceContext private EntityManager em;)

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

Spring Data、JPA @OneToMany Lazy fetch 在 Spring Boot 中不起作用 的相关文章

随机推荐

  • 敲除映射导致堆栈溢出

    我正在尝试淘汰赛和映射插件 并想知道为什么这不起作用 我有一个要使用映射扩展加载的视图模型 function todoListViewModel data ko mapping fromJSON data todos TodoItem op
  • 为什么 PCRE 正则表达式比 C++11 正则表达式快得多

    一些示例代码 这是使用 cregex iterator 的 c 11 部分 std chrono steady clock time point begin0 std chrono steady clock now regex re
  • PHP 从表行中检索数据并将其存储到变量

    我想这些问题已经说明了一切 我的查询结果会生成与条件匹配的行 我想从每个表列中获取每个数据并将其放入一个变量中 getinfo select user firstname user middlename user lastname from
  • 在 Django 中上传文件

    我在 Django 1 6 版本 中上传文件时遇到问题 当我尝试做的时候new file data save 在我的views py 中我收到此错误 quiz patent 22 medical record 2 exams 处的属性错误
  • C++:创建一个由用户输入大小的数组

    我想知道我们是否可以创建一个具有用户指定大小的数组 Ex int a cout lt lt Enter desired size of the array cin gt gt a int array a 上面的程序将不起作用 因为数组大小必
  • 包含可变数据的正则表达式 - ply.lex

    我正在使用 python 模块ply lex编写一个词法分析器 我用正则表达式指定了一些标记 但现在我卡住了 我有一个list of Keywords谁应该是token data是一个包含大约 1000 个关键字的列表 这些关键字都应该被识
  • JQuery:检查元素是否处于正常流程中

    使用 jQuery 检查元素是否在正常流程中的最优雅的方法是什么 根据CSS3规范 http www w3 org TR css3 box 如果满足以下条件 则框属于流 其 display 的使用值为 block list item tab
  • 在 VS Code 中启动没有网络安全的 Chrome

    如何在没有网络安全的情况下配置 Chrome 浏览器launch jsonVS Code 中的文件 我安装了 VS Code 扩展Chrome 调试器我的 launch json 看起来是这样 version 0 2 0 configura
  • 私人消息数据库设计

    我正在创建一个简单的私人消息系统 但我不确定哪种数据库设计更好 第一个设计是一个消息表 以及一个消息评论表 Message id recipientId senderId title body created at MessageComme
  • 为什么虽然输入的值确实发生了变化,但jquery更改事件没有触发? [复制]

    这个问题在这里已经有答案了 JSFIDDLE http jsfiddle net meXm3 2 网页代码
  • 创建地图后向 Google 地图 v3 添加标记

    我对使用 Google Maps API 比较陌生 现在我正在开发一个项目 用户可以选择各种搜索过滤器并查看结果自动显示在地图上 而无需重新加载页面 到目前为止 我的方法是创建一个控制地图的 Javascript 对象 以便我可以按照我的意
  • Git 中的提交是越多越好还是越少越好? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我最近与一位同事进行了一场辩论 他坚持认为 由于合并冲突 提交越少越好 我认为通过使用尽可能多的提交获得的细节越多越好 提交更多还是更少更好 为
  • 如何获取AWS ec2中区域的可用容量?

    AWS 终止了我的运行位置 并出现错误 实例终止容量超额订阅 有没有办法查看不同 ec2 区域中实例类型的可用容量 这样我就可以在更 可用 的区域创建我的新位置 查看 现货实例历史记录 这不会告诉您未来 但会给您迄今为止的良好指示 此链接将
  • 如何在 groovy 中将输出重定向到 stderr?

    我正在寻找一种将 groovy 脚本中的输出重定向到 stderr 的方法 catch Exception e println Want this to go to stderr 就在我的脑海中 你不能做一些自我接线吗 def printE
  • Kafka REST 代理 API 有哪些好处?

    我不知道Kafka REST Proxy API的优点 它是一个 REST API 所以我知道它对于管理来说很方便 人们为什么使用 Kafka REST 代理 API 添加对生产者或消费者的 Maven 依赖是否很麻烦 另外 我知道kafk
  • Cordova Android 应用程序中的网页不可用

    编辑 我一直在解决这个问题并回顾我的所有步骤 我很乐意缩小这个问题的规模 并在令人困惑的情况下获得更多确切的细节 目前 我觉得 Keycloak 似乎只想将我重定向到 https 据我所知 这应该是 Wildfly 服务器配置问题 编辑 我
  • 无法在 PowerShell 中完全解析 XML

    我有一个 XML 文件 我想解析该文件并检索特定信息 为了便于理解 下面是 XML 文件的屏幕截图 我想解析 XML 并为每个Item节点 检索屏幕截图中指示的字段 检索到的每个值都需要针对每个项目节点进行格式化 最后 我希望能够指定一个要
  • Ctrl-退格键 Visual Studio 2010

    I recently upgraded to Visual Studio 2010 and found out that when I press Ctrl Backspace on an empty line it will delete
  • Python ttk.combobox 强制发布/打开

    我正在尝试扩展 ttk 组合框类以允许自动建议 我到目前为止的代码运行良好 但我想让它在输入一些文本后显示下拉列表 而不从小部件的输入部分移除焦点 我正在努力解决的部分是找到一种强制下拉的方法 在 python 文档中我找不到任何提及这一点
  • Spring Data、JPA @OneToMany Lazy fetch 在 Spring Boot 中不起作用

    I have OneToMany之间的关系FabricRoll and FabricDefect OneToMany cascade CascadeType ALL fetch FetchType LAZY JoinColumn name