当前位置: 首页 > 知识库问答 >
问题:

从IntelliJ idea运行时未填充Hibernate集合

吴均
2023-03-14

我有Spring启动应用程序与Hibernate。IDE IntelliJ idea 2018.3,但问题已被证明发生在2019.3.4之前的所有版本中

    null

有明确的步骤来修复:

  1. 清除想法缓存/重新启动
  2. MVN clean Package命令行项目
  3. 重新启动应用程序
  4. 现在加载的实体再次包含项目

观察:

    null
    null

我想了解用Maven从命令行构建类和用IntelliJ构建项目之间的区别,特别是关于Hibernate类和代理。

共有1个答案

宋俊民
2023-03-14

这似乎是惰性加载的一个副作用,可能是通过字节码增强实现的。

如果我理解得正确,您可以使用调试器检查JPA实体的属性。为了实现惰性加载和脏检查,JPA实现需要在为实体编写的代码和使用这些实体的代码之间获取代码。

为了验证这一预感,并进一步澄清正在发生的事情,以及您何时可能需要阅读Hibernate中字节码增强的条件。

我怀疑,当代码通过Maven编译和执行时,使用的是第二个变体,但如果代码由IDE编译/运行,则使用的是第一个变体,导致这种混乱和变化的行为。

我建议使用getter和“evaluate expression”的变体来检查实体的属性。

 类似资料:
  • 我遇到了一个问题,@ManyToMore集合没有在数据加载时填充。我尝试了FetchType.LAZY和FetchType.EAGER,结果没有变化。 打印用户对象时,角色集合对象为空。 用户 [userId=2,名字=阿贾伊,姓氏=C,email=admin.demo@gmail.com,密码=12345,角色=[]] 也尝试通过添加引用的列。但不起作用。 请在这方面协助。 用户和角色实体如下。

  • 问题内容: 就像是有什么,但对?我要显示的数据是使用的关联。 我已经尝试使用过,但是在这种情况下,我必须在hibernate状态下使用它,这需要我指定using,并且每当我检索到through时,列表中的元素之间都会有空格,具体取决于。 我需要自动填充集合,因为我需要在创建时动态生成。当我使用plain时,得到以下内容: 还有其他解决方案吗? 编辑 我正在尝试实现动态表格 问题答案: 您无法在MV

  • 我有一个非常简单的Java/Spring应用程序来演示KStream的功能,但不幸的是,我无法使KStream加载数据。想法是创建一个KStream对象,并使用controller GET方法简单地检索其内容。示例代码: 问题-主题中有消息,但foreach(...)中的KStream枚举没有从中检索任何结果。KStream对象状态为“RUNning”,日志中没有错误。 生成随机应用程序ID并将A

  • 问题内容: 我正在尝试从表单填充bean列表: 因此,在我的Struts2表单中,填充Foo的最佳方法是什么?凭直觉,我想做: 但这不起作用,并且会导致碰撞。我敢肯定答案很简单,而且我忽略了它。 问题答案: 如果我正确理解,您只是想为每个隐藏字段使用不同的名称? 这应该给你相当于 如果您有适当的getter / setter,则应在提交表单时设置所有值。

  • 问题内容: 我目前正在尝试从用C#编写的WPF应用程序中的数据库中检索记录。我正在使用SQL数据读取器,它似乎可以正常连接,但以下内容给了我NullReferenceException: 同样,我似乎正在连接到数据库,但是如果我通过调试器运行,则数据表似乎不会被填充。 我的连接字符串,以防万一: 我当前使用的是带有两个记录的测试数据库,而不是最终数据库。我尝试使用Transact-SQL编辑器,但