0
具有米:一些實體之間的N個真實世界的關係,例如用戶< --->組 現在我想對這種關係建模並存儲基於它的附加信息,例如,一個「質量」字段。JPA:建模M:N關係&加入表值
聽說我將不得不創建一個新的連接表USER_GROUP如下:
id | user_ref | group_ref | quality
----------------------------------
1 1 1 0.5
2 1 2 1.3
... ... ... ...
相應的實體有兩個相關的實體(private成員)的用戶和組,註釋的@ManyToOne - 註解。 在另一方面,這兩個,我的用戶和我的團隊有一組相關的USER_GROUP實體,無論是私有成員,並與@OneToMany -annotation聲明。
我有三個問題:
- 這是JPA 2.0模型附加字段的問題的正確方法?
- 我不能使用用戶和組USER_GROUP作爲主鍵 因爲它們不是有效的主鍵的類型。是否真的有必要申報一個新的小學。
- 這是這些連接表/實體的通用工作流程嗎?
...
EntityManager em = ...
...
em.getTransaction().begin();
User u = new User("Pete");
Group g = new Group("Anonymous workaholics")
UserGroup ug = new UserGroup();
ug.addUser(u);
ug.addGroup(g);
em.persist(u); em.persist(g); em.persist(ug);
em.getTransaction().commit();
em.close()
非常感謝!
好非常感謝您的回答cyberspeed :)讓我確認點3:應當設置,因爲它是一個簡單的setter方法。 –
2013-04-30 12:04:47
是的,確切地說。 addXY通常用於將XY添加到XY集合中。這裏沒有碰撞,只有一個屬性。 – 2013-04-30 12:06:12
僅供參考:http://en.wikibooks.org/wiki/Java_Persistence/ManyToMany#Mapping_a_Join_Table_with_Additional_Columns – miguelcobain 2013-05-16 16:39:48