2017-01-27 28 views
1

有三個嵌套的實體,例如A {b},B {c},C {id} 我可以使用JPA的唯一約束註釋來訪問C上的ID嗎?JPA對嵌套實體的唯一約束

我的情況:我有一個其他一些領域的「Z」,我想強加「Z」和c的「ID」的唯一關聯

回答

0

查詢

你可以加入那些沒有任何配置更改使用'舊'風格的連接。它可以讓你通過不直接鏈接欄鏈接實體:

select a 
From A a, C c 
Where a.z = c.id 

映射

如果要更改配置試試這個:

public class C{ 

    @ManyToOne 
    @JoinColumn(name = "id", referencedColumnName = "z") 
    private A a; 

} 

public class A{ 

    @OneToMany(mappedBy = "a" 
    @JoinColumn(name = "z", referencedColumnName = "id") 
    private List<C> cCollection; 

} 
+0

沒有它的工作爲你? –

+0

與老式解決方案一致,但我正在使用JPA方法尋找解決方案。對於第二部分來說,它的確適用於直接引用的實體,但我的問題是,是否可以訪問引用嵌套的實體上的字段。 E.I. A和C之間有一箇中間值B.謝謝! –