hibernate - Hibernate 5迁移:使用错误别名创建的映射实体的查询集合生成异常
问题描述
在将我的 Java 8 项目从 Hibernate 3.x 迁移到 5.4.x 时,我遇到了一个问题。我在这里附上故障 Hibernate 实体的映射:
<class name="it.loginet.petrol.domain.carico.AbstractCarico" where="deleted='false'" abstract="true" table="icarico">
............
<property name="deleted" access="field" not-null="true"/>
<joined-subclass name="it.loginet.petrol.domain.carico.Carico" dynamic-update="true">
<key column="id" ></key>
<list name="scarichi" access="field" cascade="all">
<cache usage="read-write"/>
<key column="caricoAssociato"/>
<index column="scaricoIndex"/>
<one-to-many class="it.loginet.petrol.domain.carico.Scarico"/>
</list>
......
</joined-subclass>
<joined-subclass name="it.loginet.petrol.domain.carico.Scarico" dynamic-update="true" table="scarico">
<key column="id" ></key>
<property name="forScaricoRandom" access="field" />
<property name="pesoOriginaleCaricato" access="field" />
<many-to-one name="caricoAssociato" class="it.loginet.petrol.domain.carico.Carico" access="field" />
</joined-subclass>
我的代码尝试查找标有名称“scarichi”的实体,而不是通过显式 HQL 查询,而是通过访问集合。由 Hibernate 内部形成的结果查询使用错误的别名引用映射实体的字段(“已删除”),而不是父实体“AbstractCarico”的别名,而是使用子实体“Scarico”的别名,一个连接的子类。我在此处附上生成的查询的简化示例,突出查询生成问题的部分:
select scarichi0_.caricoAssociato, .................
从Scarichi0_.id = scarichi0_1_.id在Scarichi0_.id =abstractvi1_.carico 和 (abstractvi1_.deleted='false') 左外连接 ViaggioBuonoRC abstractvi1_1_ 上左外连接 ViaggioBuonoRC abstractvi1_1_。 id 左外连接 ViaggioExtrarete abstractvi1_2_ on abstractvi1_.id=abstractvi1_2_.id 左外连接 ViaggioRientro abstractvi1_3_ on abstractvi1_.id=abstractvi1_3_.id 左外连接 ViaggioBettolina abstractvi1_4_ on abstractvi1_.id=abstractvi1_4_.id 左外连接 ViaggioRete abstractvi1_5_ on abstractvi1_.id= abstractvi1_5_.id 哪里(scarichi0_.deleted='false')和scarichi0_.caricoAssociato=?
我是否从实体的 Hibernate 映射中遗漏了一些东西,可以教 Hibernate 使用正确的别名来引用我的属性?
提前感谢您的任何建议:) 莱昂纳多
解决方案
推荐阅读
- c# - Autodesk Forge 数据管理 API
- node.js - 创建一个 socket.io 服务器并从客户端连接它
- css - 为什么 vue scss compile 中出现未知单词?
- makefile - foreach 重复包含在 makefile 中
- javascript - How do I use JSArray
objects from JsonUtils.safeEval() properly? - python - 如何删除python文本输出中的自动换行?
- azure-data-factory - ADF Dataflow 中的派生列可以用于映射而不创建重复列吗?
- git - Approach to use git with two masters
- python - Loop with variable timer
- java - I want to get the final version of the program but I encountered this error