【发布时间】:2021-04-08 09:12:07
【问题描述】:
我正在尝试创建一个包含整数列表的类
@Table(name = "kidding")
@SecondaryTable(name = "kids_list")
public class Kidding {
@Id
@GeneratedValue
@Column(name = "kiddingID")
private long kiddingID;
@Column(name = "doeID")
private int doeID;
@Column(name = "buckID")
private int buckID;
@Column(name = "fertilityDate")
private Date fertilityDate;
@Column(name = "kiddingDate")
private Date kiddingDate;
@ElementCollection
@CollectionTable(name="kids_list", joinColumns=@JoinColumn(name="kiddingID"))
@Column(name = "kidID")
private List<Integer> kidIDs;
@Column(name = "notes")
private String notes;
@Column(name = "ownerID")
private long ownerID;
我有这两个表:Kidding 和 Kids_list
kidding 有一个主键kiddingID,kidding_list 有一个外键连接到kidding 的主键
餐桌开玩笑:
| kiddingID (PK) | doeID | BuckID |
|---|---|---|
| 1 | 2 | 3 |
| 2 | 6 | 8 |
| 3 | 5 | 8 |
| 4 | 7 | 9 |
表 kids_list:
| kiddingID (FK) | kidID |
|---|---|
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 4 |
| 4 | 5 |
| 4 | 6 |
| 3 | 7 |
| 2 | 8 |
| 3 | 9 |
最后,我想像这样在对象中填充我的整数列表:
When I get kidding 1:
List<Integer> kidsID {1,2,3}
When I get kidding 2:
List<Integer> kidsID {4,8}
When I get kidding 3:
List<Integer> kidsID {7,9}
When I get kidding 4:
List<Integer> kidsID {5,6}
有没有办法通过休眠来做到这一点?
ATM 如果有 1 个孩子来自开玩笑,我只会得到孩子 id,但如果有 2 个,我会收到此错误:
org.hibernate.HibernateException: More than one row with the given identifier was found: 2, for class: com.GoatPool.goatpool.model.Kidding
如果问题或其他内容不清楚,请说出来。如果需要,我想更详细地解释它!
【问题讨论】:
标签: java spring hibernate gradle orm