我有一个具有这些表的实体:
@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 ">