【发布时间】:2019-03-24 01:37:18
【问题描述】:
假设有三个 JPA 实体。一个Person 和两个一对多的关系。当我试图保存 Person AD_P_ID 和 AC_P_ID 时,外键始终为空。
这些字段的预期值是人员 ID。我做错了什么?
-
Person.java:这包含与
Account和Address实体类的一对多关系:@Entity @Table(name = "A2C_PERSON") class Person implements Serializable { private long id; private List<Account> acs; private List<Address> ads; @OneToMany(cascade=CascadeType.ALL, mappedBy = "person") public List<Account> getAccount() { return this.acs; } @OneToMany(cascade=CascadeType.ALL, mappedBy = "person") public List<Address> getAddress() { return this.ads; } } -
帐户.java
@Entity @Table(name = "A2C_ACCOUNT") public class Account implements Serializable { private long id; private Person person; @ManyToOne(cascade=CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "AC_P_ID") public Person getPerson() { return this.person; } } -
地址.java
@Entity @Table(name = "A2C_ADDRESS") public class Address implements Serializable { private long id; private Person person; @ManyToOne(cascade=CascadeType.ALL,fetch = FetchType.LAZY) @JoinColumn(name = "AD_P_ID") public Person getPerson() { return this.person; } }
救人的密码:
Person p = new Person();
Account ac1 = new Account();
Account ac2 = new Account();
List<Account> acList = new ArrayList<>();
acList.add(ac1);
acList.add(ac2)
Address ad1 = new Adddress();
Address ad2 = new Adddress();
List<Address> adList = new ArrayList<>();
acList.add(ad1);
acList.add(ad2)
p.setAcs(acList);
p.setAds(adList);
personRepo.save(p);
【问题讨论】:
标签: java spring hibernate jpa spring-data-jpa