配置
问题的简短版本
在经典场景中,两个表具有一对多关系.我创建父实体,然后创建子实体,并将子项附加到父项的集合.当我创建(控制器方法)父实体时,我希望子实体被创建并与父关联.为什么不发生?
长版
家长班
@Entity
@XmlRootElement
public class Device implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
private Integer id;
@Column(unique=true)
private String name;
@Temporal(TemporalType.TIMESTAMP)
private Date updated;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "deviceId")
private Collection<NetworkInterface> networkInterfaceCollection;
public Device() {
}
public Device(String name) {
this.name = name;
updated …Run Code Online (Sandbox Code Playgroud) 我想通过向实体添加地址列表来扩展使用REST访问JPA数据的示例Person.所以,我添加了一个addresses带@OneToMany注释的列表:
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String firstName;
private String lastName;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private List<Address> addresses = new ArrayList<>();
// get and set methods...
}
Run Code Online (Sandbox Code Playgroud)
这Address堂课非常简单:
@Entity
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String street;
private String number;
// get and set methods...
}
Run Code Online (Sandbox Code Playgroud)
最后我添加了AddressRepository界面:
public interface AddressRepository extends PagingAndSortingRepository<Address, …Run Code Online (Sandbox Code Playgroud)