0
A
回答
1
沒有真正的理由不使用PK?如果實體有其他屬性,我會說你最好用一個。
如果你真的不想要一個你可以使用JPA的@EmbeddedId使用複合鍵
private UserSessionId id
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "userId", column = @Column(name = "user_id", nullable = false)),
@AttributeOverride(name = "sessionId", column = @Column(name = "session_id", nullable = false)) })
public UserSessionId getId() {
return this.id;
}
public void setId(UserSessionId id) {
this.id = id;
}
然後,你可以定義一個獨立的實體usersessionid在同時包含FK的,至少這是休眠的工具如何生成複合鍵關係
0
在JSR文檔中有非常好的組合PK的例子,請參閱JSR 317的鏈接中的persistence-2_0-final-spec.pdf,2.4主鍵和實體標識部分有很好的例子。
1
如果有參與加入(僅限即外鍵)沒有額外的字段。你可以使用下面的技術,不需要java域對象,hibernate會爲你全力以赴。
http://www.mkyong.com/hibernate/hibernate-many-to-many-relationship-example-annotation/
你仍然可以在你的表中其他列如CREATION_DATE,但它們的值將需要在數據庫級別進行更新。
相關問題
- 1. JPA +休眠外鍵爲空
- 2. JPA /休眠OneToOne空外鍵
- 3. JPA休眠 - 外鍵作爲主鍵
- 4. 休眠創建自己的外鍵
- 5. 休眠與JPA不創建表
- 6. 休眠與JPA不會創建表
- 7. @OneToMany不插入外鍵在休眠+ JPA
- 8. 休眠外鍵
- 9. 休眠外鍵
- 10. jpa休眠@ElementCollection
- 11. 休眠訂單外鍵表
- 12. JPA /休眠 - 共享主鍵
- 13. JPA /休眠和複合鍵
- 14. 用現有記錄的外鍵創建休眠實體
- 15. 沒有外鍵的休眠OneToMany
- 16. 休眠+ MySQL的+ JPA
- 17. JPA /休眠(PSQL)不創建joinedtable
- 18. JPA /休眠@ManyToMany聯結表中沒有創建索引
- 19. 休眠不創建表
- 20. 休眠組合鍵只有foriegn鍵
- 21. JPA /休眠 - 與複合主鍵的外鍵
- 22. 休眠外鍵是主鍵
- 23. 休眠:外鍵是主鍵
- 24. 如何創建一個複合主鍵休眠JPA?
- 25. 沒有休眠的Spring JPA
- 26. Spring JPA休眠OneToOne
- 27. 帶3個外鍵的休眠表
- 28. 休眠只保存複合主鍵中具有父外鍵的子表項
- 29. 一對一單向休眠映射不會在創建表時創建外鍵
- 30. 休眠/ JPA自動創建外鍵,而不是使用exisiting在國外很多關鍵的一個協會
我想避免在數據庫級別進行手動更新並將其他屬性作爲連接表的列。 – yousafsajjad