首页 > 解决方案 > org.hibernate.MappingException:来自表 X 的关联引用了未映射的类

问题描述

我在从休眠工具生成实体时遇到问题。

我正在尝试生成 4 个表的实体,pru1并且pru2在关联表中具有多对多的关系pru3。键作为外pru3键传递给pru4表。

  pru1 ---> pru3 <---- pru2
              |
              |
              V 
            pru4

如果我没记错的话,实体pru1应该有一个 的列表pru2pru2一个 的列表pru1pru4一个 的对象pru1以及另一个pru2

当我运行休眠工具时,我摆脱了这个错误:

org.hibernate.MappingException:来自表 PRU4 的关联引用了未映射的类:com.entities.Pru3 来自表 PRU4 的关联引用了未映射的类:com.entities.Pru3 org.hibernate.MappingException:来自表的关联表 PRU4 引用未映射的类:com.entities.Pru3 表 PRU4 的关联引用未映射的类:com.entities.Pru3

在休眠工具的配置中,我检查了所有选项,包括检测多对多表

是否可以使用休眠工具进行这种类型的映射?

提前致谢

标签: javahibernatehibernate-tools

解决方案


我以一种非常不优雅的方式解决了我的问题。

具有来自解决 N:N 基数的表的关系,有必要创建此实体。

我本可以取消选中“检测多对多表”选项,但我还有其他 N:N 关系表,而这些我不想生成。

我选择的解决方案是在我的 PRU3 表中创建一个附加字段,以强制休眠工具生成实体。

后来我删除了 BBDD 和实体中的字段。

我确信这种类型的映射可以通过使用 reveng.xml 或实施策略自动完成,但这将花费我比我更多的时间。


推荐阅读