UPDATE:我看到了數據庫關係,並且我意識到Module表有兩個對Unit Table(nid,unnr)的引用,但Unit Table沒有引用Module Table,它只能使用nid對子表進行子框架化。映射@ManyToMany與休眠標註的關係
回答
首先,所有的代碼,目前呈現出的混合了一些東西......
你定義一個@JoinTable註解,這意味着你有3個表,1單元,1單元和一個與身份證的兩個實體在它...
第二個評論我已經是你談論一個模塊和單位之間的一對曼尼關係,但在你的示例代碼中,你把一個多對多的,很多...
如果我按照你的描述,我會在代碼中這樣構建它:
@Entity
@Table(name = "unit")
public class Unit {
@Column(name = "nid")
private int nid;
@Id
@GeneratedValue
@Column(name = "unnr")
private int unnr;
@Column(name = "unhwtype")
private int unhwtype;
@Column(name = "unslot")
private int unslot;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "nid")
private Module module;
@Entity
@Table(name = "module")
public class Module {
@Column(name = "nid")
private int nid;
@Id
@Column(name = "mpos")
private int mpos;
@Column(name = "mhwtype")
private int mhwtype;
@OneToMany(mappedBy = "module", cascade = {CascadeType.ALL})
private Set units;
問題她是我不確定這是否會起作用,因爲nid不是模塊實體中的ID列,我認爲您需要更改您的設計,以便nid是Id列...你可以嘗試這個代碼,並希望它的工作原理,否則將模塊實體中的ID改爲ID ..
Yoeri,我改變了你的代碼。但名單仍然是空的。我會嘗試將de nid作爲ID,但是如果我這樣做,我會保留mpos的Id註釋,或者將其刪除並僅放入nid的Id註釋? – Murilo
嗨Murilo,我假設Hibernate不能在同一個實體上使用2個@Id註解,所以我建議只把ID放在Nid上並從Mpos中移除它。 –
- 1. 映射與休眠的關係
- 2. 休眠@ManyToMany映射與複合鍵
- 3. 休眠@OneToMany關係映射
- 4. 休眠ManyToMany與其他列的關係
- 5. 休眠需要manytomany關係
- 6. 休眠@ManyToMany刪除關係
- 7. 休眠刪除關係manyToMany
- 8. 休眠 - 優化ManyToMany關係
- 9. 使用hibernate註釋映射ManyToMany關係?
- 10. 休眠映射的三重關係
- 11. OneToMany或ManyToMany在休眠映射
- 12. 休眠ForeignKey映射註釋
- 13. 休眠映射 - 多對一關係
- 14. 需要一些休眠關係映射
- 15. 休眠,間接關係映射
- 16. 休眠關係映射不bidirecional
- 17. Movies2actors未映射 - 休眠與註釋
- 18. 休眠ManyToMany關聯?
- 19. 關聯表休眠映射
- 20. JPA /休眠:ManyToMany刪除關係
- 21. JPA用戶,角色,manyToMany休眠關係
- 22. 休眠映射
- 23. 休眠映射
- 24. 休眠映射
- 25. 休眠與附加關係表的一對多映射
- 26. 休眠映射與一對多的多態關係
- 27. (N)休眠:與關係的核心/主映射
- 28. 休眠 - @ManyToMany與附加字段在映射實體
- 29. 上映射:休眠
- 30. 休眠映射包
您是否試圖直接在數據庫上運行生成查詢,看看它是否返回任何值?你在這些表中有數據嗎? – Jay
是的,我有9排。 – Murilo
但我認爲我的映射不正確。所以它給我一個空的列表。 – Murilo