所以我有两个实体:
人.java
@Entity
@Table(name = "persons")
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@OneToMany(mappedBy="person", cascade = CascadeType.REMOVE)
@JsonIgnoreProperties("person")
private Set<Address> addresses;
//getters and setters
}
地址.java
@Entity
@Table(name = "addresses")
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@NotNull
@ManyToOne
@JoinColumn(name = "person_id", nullable = false)
@JsonIgnoreProperties("addresses")
private Person person;
//getters and setters
}
后来在我的代码中,我有一个 personDb 对象(已经保存在数据库中),然后我添加了地址:
Address address = new Address();
address.setPerson(personDb);
address = addressRepository.save(address);
现在我有地址对象和附加的人员对象,但我的 personDb 仍然没有附加任何地址。即使我再次尝试从数据库中获取它:
personRepository.findOne(personDb.getId());
我有 null 应该在哪里设置地址。我还尝试将 Person 类中的注释更改为以下内容:
@OneToMany(mappedBy="person", fetch = FetchType.EAGER, cascade = CascadeType.REMOVE)
或将 CascadeType 更改为 ALL 但没有任何帮助。在将地址添加到数据库后,如何将地址加载到我的 personDb 对象?