【发布时间】:2017-05-29 13:11:36
【问题描述】:
非常简单的一对多关系 - 一对多宠物。
@Entity
class Human{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToMany(mappedBy="human", cascade={CascadeType.ALL})
private List<Pet> pets;
// other fields
}
@Entity
class Pet{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="human_id")
private Human human;
// others fields
}
这导致创建了两个表 HUMAN(id) 和 PET(id, human_id)。
EDIT-1:我正在使用 Spring Data Rest
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
EDIT-2:这是我发布数据方式的更新视图。 我正在向人类发布:
{
// human data
"pets": [
"http://localhost/pets/1",
"http://localhost/pets/2"
]
}
问题:PET 表中的human_id 列为空。所有其他字段都已找到,但未建立关系。
我错过了什么?
【问题讨论】:
标签: hibernate jpa spring-data h2 spring-data-rest