一对多关系支持读取但不支持插入
One To Many Relationship Supporting Reads but not INSERTS
我正在使用 spring 引导(版本 2.1.1)创建一个应用程序,该应用程序需要满足以下要求的两个模型 类 之间的一对多和多对一关系
模特类是
@Entity
@Table(name="ORGANIZATIONS")
public class Organization{
@Id
@GeneratedValue
Private long id;
@Column(unique=true)
Private String name;
}
@Entity
@Table(name="DEPARTMENTS")
Public class Department{
@Id
@GeneratedValue
Private long id;
@Column(unique=true)
Private String name;
//…
}
要求
- 组织和部门都应该由各自的休息 api 创建。
- 通过 POST /organizations api 我们应该能够创建一个组织,而无需在同一个 api 调用中创建部门。事实上 api 应该会失败 我尝试将 json 元素作为 POST /organizations 调用的一部分传递给部门。
- 调用 POST /departments 时,我应该能够传递组织 ID 以将新创建的部门与组织相关联。
- GET /organizations api 调用应该 return 集合作为组织对象的一部分
问题是
如何关联这两个模型对象?我是否在组织中添加@OneToMany?我将哪些属性传递给@OneToMany?我在另一边的部门需要一个类似的@ManyToOne 吗?
我需要对 REST 控制器进行任何特殊考虑吗?
您只需要 @ManyToOne
来坚持 Department
,但您很可能需要 @OneToMany
在 Organization
中进行 GET 请求。
只要确保在保存部门时,您需要:
- 从数据库中获取组织
- 在部门对象上设置获取的组织
- 将部门添加到 Organization.departments 列表
- 坚持部门
对于错误处理 return 一个 BAD_REQUEST
响应:
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
我正在使用 spring 引导(版本 2.1.1)创建一个应用程序,该应用程序需要满足以下要求的两个模型 类 之间的一对多和多对一关系
模特类是
@Entity
@Table(name="ORGANIZATIONS")
public class Organization{
@Id
@GeneratedValue
Private long id;
@Column(unique=true)
Private String name;
}
@Entity
@Table(name="DEPARTMENTS")
Public class Department{
@Id
@GeneratedValue
Private long id;
@Column(unique=true)
Private String name;
//…
}
要求
- 组织和部门都应该由各自的休息 api 创建。
- 通过 POST /organizations api 我们应该能够创建一个组织,而无需在同一个 api 调用中创建部门。事实上 api 应该会失败 我尝试将 json 元素作为 POST /organizations 调用的一部分传递给部门。
- 调用 POST /departments 时,我应该能够传递组织 ID 以将新创建的部门与组织相关联。
- GET /organizations api 调用应该 return 集合作为组织对象的一部分
问题是
如何关联这两个模型对象?我是否在组织中添加@OneToMany?我将哪些属性传递给@OneToMany?我在另一边的部门需要一个类似的@ManyToOne 吗?
我需要对 REST 控制器进行任何特殊考虑吗?
您只需要 @ManyToOne
来坚持 Department
,但您很可能需要 @OneToMany
在 Organization
中进行 GET 请求。
只要确保在保存部门时,您需要:
- 从数据库中获取组织
- 在部门对象上设置获取的组织
- 将部门添加到 Organization.departments 列表
- 坚持部门
对于错误处理 return 一个 BAD_REQUEST
响应:
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);