休眠工具:当外键映射到两个不同的表时出现异常

jma*_*rks 5 java db2 hibernate hibernate-tools

我正在针对 DB2 数据库运行 Hibernate Tools,该数据库允许在两个不同的表中使用相同的外键名称,每个表都与另一个表中的相同 PK 相关。当该工具尝试读取架构时,它会引发以下异常:

org.jboss.tools.hibernate.spi.HibernateException: Foreign key name (EXECUTION_FK) mapped to different tables! previous: org.hibernate.mapping.Table(PURGE_EXECUTION_TRACKING) current:org.hibernate.mapping.Table(PURGE_SCENARIO_TRACKING)
    at org.hibernate.eclipse.console.workbench.LazyDatabaseSchemaWorkbenchAdapter$2.execute(LazyDatabaseSchemaWorkbenchAdapter.java:138)
    at org.hibernate.console.execution.DefaultExecutionContext.execute(DefaultExecutionContext.java:63)
    at org.hibernate.console.ConsoleConfiguration.execute(ConsoleConfiguration.java:108)
    at org.hibernate.eclipse.console.workbench.LazyDatabaseSchemaWorkbenchAdapter.readDatabaseSchema(LazyDatabaseSchemaWorkbenchAdapter.java:125)
    at org.hibernate.eclipse.console.workbench.LazyDatabaseSchemaWorkbenchAdapter.getChildren(LazyDatabaseSchemaWorkbenchAdapter.java:65)
    at org.hibernate.eclipse.console.workbench.BasicWorkbenchAdapter.fetchDeferredChildren(BasicWorkbenchAdapter.java:104)
Run Code Online (Sandbox Code Playgroud)

应该可以重命名其中一个 FK,但这是一个大型数据库,并且似乎存在许多此类冲突。

有没有人在 Hibernate 中找到一种解决方法,可以允许读取模式而不会因异常而窒息?

我还没有找到一个配置参数来关闭这个检查,或者任何可以解决这个问题的类覆盖。如果可以忽略此异常,Hibernate 工具是否能够执行其逆向工程功能也不清楚。

小智 2

正如您在本主题中看到的:

https://forum.hibernate.org/viewtopic.php?f=6&t=948998&view=next

Hibernate 工具在管理具有相同名称的不同表中的外键时存在问题。我认为第一个选择是重命名这些外键。

对不起。