2015-06-11 26 views
2

如果重寫關係,是否可以指定外鍵的名稱?@ForeignKey with @AssociationOverride

我試過如下:

@AssociationOverride(name = "client", joinColumns = { @JoinColumn(name = "client_idx", foreignKey = @ForeignKey(name = "FK_TEST")) }) 

的聯接的列名是否正確client_idx,而是由系統生成的外鍵的名稱。

我想自己設置外鍵名稱。

謝謝。

回答

0

我相信你想上的AssociationOverride註釋(而不是嵌入式JoinColumn註釋)指定的foreignKey元素,像這樣:

@AssociationOverride(
    name = "client", 
    joinColumns = { 
     @JoinColumn(name = "client_idx") 
    }, 
    foreignKey = @ForeignKey(name = "FK_TEST") 
) 

更新:看到bikeshedder下面發表評論。

+0

不幸的是,這樣做效果不佳。 – Seb

+0

我認爲你的解決方案是「正確的」,但由於一個永遠不會修復的休眠錯誤而不起作用。請參閱https://hibernate.atlassian.net/browse/HHH-4329 - 不幸的是,問題已關閉,但對於javax.persistence註解仍然存在。 – bikeshedder

+0

似乎有關於此的一個新的錯誤報告:https://hibernate.atlassian.net/browse/HHH-10387 – Walid