Hibernate为SecondaryTable上的joinColumn添加成员变量名以生成SQL



我有一个具有这些表的实体:

@Entity
@Table(name = "PM_ADJ_MULTI_YR_DETAILS")
@SecondaryTables(
{
@SecondaryTable(name = "PM_RPT_MASTER",   pkJoinColumns = @PrimaryKeyJoinColumn(name = "INCTV_APP_SAK")),
@SecondaryTable(name = "PM_INCTV_APP",    pkJoinColumns = @PrimaryKeyJoinColumn(name = "INCTV_APP_SAK")),
@SecondaryTable(name = "PM_ADJ_MULTI_YR", pkJoinColumns = @PrimaryKeyJoinColumn(name = "MULTI_YR_ADJ_SAK"))
}
)

在这个实体上,我有一个成员变量,如下所示:

@ManyToOne
@JoinColumn(name = "MMIS4_IND", table = "PM_ADJ_MULTI_YR")
private MultiYrAdjMmis4Ind mmis4Ind;

Hibernate将成员变量名添加到生成的SQL中,如下所示:

AND t1.MMIS4IND_MMIS4_IND = t4.MMIS4_IND(+)

应该是:

AND t1.MMIS4_IND = t4.MMIS4_IND(+)

我们使用javax.persistence-2.0.0.jar和Spring 3.0.2.

仅供参考:在:https://issues.apache.org/jira/browse/OPENJPA-2157?jql=text%20~%20%22joinColumn%20on%20secondarytable%22

找到了这个问题的解决方案/解决方案

显然这是已知的问题与OpenJPA(我们正在使用OpenJPA v2.0.0)。

对于解决方案/解决方法,您只需要更改persistence.xml中指定的持久性的版本(v2.0不能处理它,但v1.0可以)。

改变:http://java.sun.com/xml/ns/persistence/persistence_ * * * * * * 2 _0 . xsd ">

:http://java.sun.com/xml/ns/persistence/persistence_ * * * * * * 1 _0 . xsd ">

最新更新