gpt4 book ai didi

java - hibernate中具有多个模块的构造函数表达式

转载 作者:太空宇宙 更新时间:2023-11-04 12:56:55 26 4
gpt4 key购买 nike

我目前正在使用 hibernate 和 JPA 开发一个 Java EE 项目,并且面临一个我真的不知道如何处理的问题。这是项目的布局:

有一个模块,我们称之为 module A ,其中有一个 persistence.xml 和许多映射到数据库的实体。我即将添加新功能,由于新功能有其自己的职责,我有一个新模块 module B ,有自己的 persistence.xml。两者module Amodule B部署为 JBoss 中的耳朵。

数据库的设计(这是最终的且无法更改)需要 module B 中的实体之一在module A中有一个外键。在B的persistence.xml中我添加了<class> - 外键的标签,以便 hibernate 可以找到它。外键实体类本身具有对其他实体的引用,因此我也必须将它们添加到 persistence.xml 中。我的问题是,其中一个实体有一个构造函数表达式 jpql 查询,将实体中的数据选择到常用的 POJO 中。在 module B当 hibernate 尝试解决所有 <class> 时-tags 它提示 JPQL 查询无效(因为它不知道 POJO)。有没有办法让模块B中的持久化单元知道这个对象?我真的很想将所有类(class)留在 module A未受影响,因为它们是一种“遗留代码”,我知道它们已经可以工作了(更改它们可能会破坏模块 A 的结构)。

最佳答案

我终于找到了问题所在,这是我的解决方法。

当我专门添加 module A 中的类时至module B<class> -tag 我不小心添加了一个父类(super class),其中包含hibernate认为错误的查询。事实上,如果只查看该父类(super class),则查询是错误的,因为其中一个变量仅可用在子类中(查询如下所示: select new MyPojoClass(x.id, x.var1, x.var2, x.variableAvailableInSubClass) from MyTable x )。为了解决这个问题,我添加了所有子类 <class> ,使 hibernate 能够解析所有依赖项和查询。

关于java - hibernate中具有多个模块的构造函数表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35321961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com