Hibernate 和 JPA 错误:依赖 Maven 项目上的重复导入

2023-12-20

我有两个 Maven 项目,一个名为项目数据另一个打电话项目休息这依赖于项目数据项目。

Maven 构建成功项目数据项目但失败了项目休息项目,但以下情况除外:

Caused by: org.hibernate.DuplicateMappingException: duplicate import: TemplatePageTag refers to both com.thalasoft.learnintouch.data.jpa.domain.TemplatePageTag and com.thalasoft.learnintouch.data.dao.domain.TemplatePageTag (try using auto-import="false")

我可以在这里看到一些解释:http://isolaso​​ftware.it/2011/10/14/hibernate-and-jpa-error-duplicate-import-try-using-auto-importfalse/ http://isolasoftware.it/2011/10/14/hibernate-and-jpa-error-duplicate-import-try-using-auto-importfalse/

我不明白的是,为什么在构建时不会出现此消息项目数据项目并在构建时发生项目休息项目。

我试着查找pom.xml文件以查看其中是否有可以解释问题的内容。

我还查找了测试的配置和运行方式项目休息项目。

但我还没有看到任何东西。


该错误基本上是由于以下事实造成的:sessionFactorybean 位于两个之下entities具有相同的逻辑名称模板页面标签 :

  • 一个位于com.thalasoft.learnintouch.data。jpa.domain包裹。
  • 另一个在下面com.thalasoft.learnintouch.data。dao.domain.

由于今年秋天发生了一个不寻常的情况,您将有休眠对该案进行投诉。主要是因为您在运行某些程序时可能会遇到最终问题HQL查询(基本上是面向实体的查询)并且可能会产生不一致的结果。

作为解决方案,您可能需要:

  • 重命名你的Entity具有不同名称的 bean 以避免混淆,我认为这对于您的情况不是合适的解决方案,因为它可能需要大量重构,并且可能会损害您的项目兼容性。

  • 配置要使用不同名称解析的 EJB 实体。当您使用配置一个实体时xml基于处理和其他通过注释的处理,定义实体名称的模式不一样:

    • For the com.thalasoft.learnintouch.data.jpa.domain.TemplatePageTag实体,您需要添加name归因于@Entity注释如下:

      @Entity(name = "TemplatePageTag_1")
      public class TemplatePageTag extends AbstractEntity {
        //...
      }
      
    • For the com.thalasoft.learnintouch.data.dao.domain.TemplatePageTag,因为它是使用 hbm xml 声明映射的,所以您需要添加entity-name归因于你的class元素如下:

      <hibernate-mapping>
        <class name="com.thalasoft.learnintouch.data.dao.domain.TemplatePageTag"
          table="template_page_tag"
          entity-name="TemplatePageTag_2"
          dynamic-insert="true"
          dynamic-update="true">
      
          <!-- other attributes declaration -->
      
        </class>
      </hibernate-mapping>
      

当我更深入地了解您的项目结构时,您可能还需要修复其他 bean 的实体名称,因为您一直遵循许多其他类的相同架构,例如com.thalasoft.learnintouch.data.jpa.domain.AdminModule and com.thalasoft.learnintouch.data.dao.domain.AdminModule.

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

Hibernate 和 JPA 错误:依赖 Maven 项目上的重复导入 的相关文章

随机推荐