我得到了這種表結構,我們不允許更改,並且在查找Hibernate映射解決方案時遇到問題。Hibernate列同時用作複合主鍵和部分複合外鍵的一部分
表A
a1 (pk)
a2
表B
b1 (pk, fk on 'A.a1')
b2 (pk)
b3
表C
c1 (pk, fk on 'B.b1')
c2 (pk, fk on 'B.b2')
c3 (pk)
c4
表d
d1 (pk)
d2 (pk, fk on 'A.a1')
d3 (fk on 'C.c2')
d4 (fk on 'C.c3')
d5
現在,我得到的問題是上塔D2表d的的theb水平,這是複合鍵的一部分,並且也外鍵的表C
上的一部分在Hibernate中我做了這個
@Embeddable
public class TableDId {
private Long d1;
private TableA d2;
@Column(name="d1")
public Long getD1() {
return this.d1;
}
@ManyToOne
@JoinColumn(name="d2")
public Long getD2() {
return this.d2;
}
// Setters
}
@Entity
public class TableD {
private TableDId id;
private TableC tableC;
@EmbeddedId @GeneratedValue(strategy = GenerationType.AUTO)
public TableDId getId() {
return this.id;
}
@ManyToOne
@JoinColumns({
@JoinColumn(name="id.d2", referencedColumnName="c1"),
@JoinColumn(name="d3", referencedColumnName="c2"),
@JoinColumn(name="d4", referencedColumnName="c3")
})
public TableC getTableC() {
return tableC;
}
// Setters
}
正如你可以猜測,不工作,我得到了一個Hibernate的錯誤時SA對一個新表D
java.sql.BatchUpdateException: Unknown column 'id.d2' in 'field list'
任何人都可以提出一個工作解決方案嗎?
非常感謝。
,這根本不提供解決方案 – Chan