![](/img/trans.png)
[英]Hibernate Spring OneToMany - ManyToOne Domain Driven Design
[英]Spring Rest Hibernate OneToMany / ManyToOne
我正在嘗試使用用戶名作為外鍵創建具有OneToMany關系的用戶表,但是ManyToOne關系中的用戶名字段每次都為Null。
關系:
User:
@OneToMany(targetEntity = Authority.class, cascade=CascadeType.ALL, mappedBy="username")
private Collection<Authority> authorities
Authority:
@Column(nullable = false, name="username")
@JoinColumn(name="user_username")
String username;
結果表:
+----+--------------------+-----------+---------+
| id | username | password | enabled |
+----+--------------------+-----------+---------+
| 13 | will | q | 0 |
| 34 | I just got editted | adufhasdf | 1 |
| 36 | wakakawakwakaak | ballz | 0 |
+----+--------------------+-----------+---------+
+----+----------+------------+
| id | username | authority |
+----+----------+------------+
| 6 | NULL | ROLE_ADMIN |
| 7 | NULL | ROLE_ADMIN |
| 8 | NULL | ROLE_ADMIN |
| 12 | NULL | ROLE_BASIC |
| 13 | NULL | ROLE_BASIC |
| 14 | NULL | ROLE_BASIC |
| 17 | NULL | ROLE_BASIC |
| 18 | NULL | ROLE_BASIC |
| 19 | NULL | ROLE_BASIC |
| 20 | NULL | ROLE_BASIC |
| 21 | NULL | ROLE_BASIC |
| 22 | NULL | none |
| 23 | NULL | ROLE_BASIC |
| 24 | NULL | ROLE_BASIC |
| 25 | NULL | none |
| 26 | NULL | none |
| 27 | NULL | ROLE_BASIC |
| 28 | NULL | none |
| 29 | NULL | ROLE_ADMIN |
| 30 | NULL | ROLE_ADMIN |
| 31 | NULL | ROLE_BASIC |
| 39 | NULL | ROLE_BASIC |
| 40 | NULL | ROLE_USER |
| 41 | NULL | ROLE_USER |
| 42 | NULL | ROLE_USER |
| 43 | NULL | ROLE_ADMIN |
| 44 | NULL | ROLE_ADMIN |
| 45 | NULL | ROLE_USER |
+----+----------+------------+
您的JoinColumn
應該是:
@JoinColumn(name="username")
這是因為在Authority
實體中將該字段標識為username
。
在JPA文檔中找到了一個簡單的答案。
在用戶中
@OneToMany(targetEntity = Authority.class , cascade = CascadeType.ALL)
@JoinColumn(name="username", referencedColumnName="username")
private List<Authority> authorities
然后是管理局
@Column(nullable = false)
String username;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.