java如何在spring data jpa for mysql数据库中同时使用one和one-many关系
我在资源管理公司工作。在本模块中,我们将有以下表格
要求
要求
没有职位空缺
职位
请求接收时间
需求状况
经历
技巧
地点
资源
残余物
名字
经历
技巧
地点
地位
可用
需求(fk)
需求或资源可以独立创建。我们有匹配屏幕,用户可以映射与需求匹配的资源(匹配标准将是两个表中的技能和经验)。一旦用户选择并保存需求,资源的状态就应该改变。每个资源都有状态[Available, Shortlisted, In_progress, Background_Verification, On boarded, Rejected]
。用户可以根据流程更改资源的状态。如果一个资源被拒绝,那么它应该可用于其他需求。为了为一个需求创建报告,我们应该维护每个需求和资源状态,即有多少资源被列入短名单、有多少资源在船上以及有多少资源被拒绝
那么数据应该是这样的
req_res_status
---------------
resId resId status updatedDate comment
1 1 shortlisted 18/12/19 candidate shortlisted
1 1 Inprogress 19/12/19 Done with one F2F
1 1 Rejected 20/12/19 Rejected in second round - F2F
1 2 shortlisted 18/12/19 candidate shortlisted
1 2 Inprogress 19/12/19 Done with one F2F
1 2 BGV_check 20/12/19 Background verification In progress
1 2 onboarded 01/01/20 Onboarded
2 1 shortlisted 20/12/19 candidate shortlisted
2 1 Inprogress 21/12/19 Done with one F2F
2 1 BGV_check 22/12/19 Background verification In progress
2 1 onboarded 01/01/20 Onboarded
一个需求可以有多个资源,一个资源可以关联到一个需求
如何使用spring数据JPA实现这一点,以及如何维护这些关系
我试过这种方法
资源。爪哇
@Entity
public class Resource implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="res_id")
private int resourceId;
private String location;
private String name;
@Column(name="position")
private String jobTitle;
@Column(name="skills")
private String skill;
private String availability;
private String status;
private Integer experience;
//bi-directional many-to-one association to Requirement
@ManyToOne
@JoinColumn(name="req_fk")
private Requirement requirement;
// Setters & Getters
}
资源。爪哇
@Entity
@NamedQuery(name="Requirement.findAll", query="SELECT r FROM Requirement r")
public class Requirement implements Serializable {
private static final long serialVersionUID = 1L;
@Id
//@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="req_id")
private String reqNumber;
@Column(name="acknowledge_status")
private String acknowledgeStatus;
@Column(name="acknowledge_time")
private String acknowledgeTime;
private int experience;
@Column(name="no_position")
private int noPositions;
@Column(name="req_recieved_time")
private String reqRecievedTime;
@Column(name="req_skills")
private String skill;
@Column(name="job_title")
private String position;
private String location;
@Column(name = "status")
private String status;
//bi-directional many-to-one association to Resource
@OneToMany(mappedBy="requirement")
private List<Resource> resources;
// setters & getters
}
# 1 楼答案