Hibernate composite primary key – Hibernate 的複合主鍵

Hibernate composite primary key – Hibernate 的複合主鍵

這真是一個大的標題,  事實上, 我並沒有打算對這部份做太多深入的研究,
只是因為中文資料實在是少的可憐,  而僅有的中文資料大多只做了翻譯,
遇到問題, 卻很難按照上面的說明實作, 因此, 我打算寫這一篇, 彌補Hibernate中文資料在這方面的不足:

Hibernate 的物件採用 複合主鍵, 根據Hibernate 官方文件, 至少有三種寫法 :
2.2.. Mapping identifier properties
………………………[恕刪]
You can define a composite primary key through several syntaxes:
    * annotate the component property as @Id and make the component class @Embeddable
    * annotate the component property as @EmbeddedId
    * annotate the class as @IdClass and annotate each property of the entity involved in the primary key with @Id

1. 利用@Embeddable 註解 Primary Key Class 和 @Id 註解 POJO Class中 Id 的結合

2. 單獨利用@EmbeddedId 註解
但是, 有時要使用
@JoinColumn(name="varableName", referencedColumnName="columnName", insertable = false, updatable = false)

3. 採用 @IdClass ,  標定 Id類別, 這有一個缺點, 就是, 如果程式開發到後面,
需要進行 OneToMany 或是 ManyToMany 的時候,  在 em.save( Object ) 的時候, 會造成SQL ,  parameter 的錯誤,
這個錯誤根據 Hibernate 論壇的討論,  應該是 IdClass 的問題,
https://forum.hibernate.org/viewtopic.php?f=1&t=999892&start=0

廣告

About fenjj

Perfect !!??...
本篇發表於 Uncategorized。將永久鏈結加入書籤。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s