Hibernate Annotation O-R Mapping

最近公司正在拼 Spring + Hibernate  , 偏偏那個 O-R Mapping 很難搞定,
直到今天才試出來, 原來我被 Hibernate Document 給騙了!!….
 
如果你是雙向, 並且由 Many端 控制:
public class User {
     @ManyToOne(cascade=CascadeType.ALL, fetch = FetchType.EAGER)
     @JoinColumn(name = "department_id")
     private Department department;
}
 
public class Department {
     @OneToMany(mappedBy = "department", cascade = CascadeType.ALL)
     private Collection<User> users = new ArrayList<User>();
}
 
但是反過來如果你是雙向卻是由One 端控制:
public class User {
     @ManyToOne(cascade=CascadeType.ALL, fetch = FetchType.EAGER)
     @JoinColumn(name = "department_id")
     private Department department;
}
 
public class Department {
     @OneToMany(cascade = CascadeType.ALL)
      @JoinColumn(name = "department_id")
     private Collection<User> users = new ArrayList<User>();
}
 
我相信眼尖的人已經看出差異了!! 沒錯, 就是差別在於
OneToMany 使用了 mappedBy ="物件變數名稱"
或是使用 JoinColumn(name="想對應到的資料庫欄位名稱")
 
廣告

About fenjj

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

發表迴響

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

WordPress.com Logo

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

Twitter picture

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

Facebook照片

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

Google+ photo

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

連結到 %s