Hibernate 一个到复合主键jpa之间的映射
我有一个用例,两个表有复合主键,一个表和数据库中的另一个表有关系,如何在程序级获得这种关系,如何声明bean类 //表项目的复合主键Hibernate 一个到复合主键jpa之间的映射,hibernate,jpa,spring-data-jpa,Hibernate,Jpa,Spring Data Jpa,我有一个用例,两个表有复合主键,一个表和数据库中的另一个表有关系,如何在程序级获得这种关系,如何声明bean类 //表项目的复合主键 @Embeddable @Data public class ProjectId implements Serializable { private static final long serialVersionUID = 12233365L; @Column(name = "PROJECT_CODE")
@Embeddable
@Data
public class ProjectId implements Serializable {
private static final long serialVersionUID = 12233365L;
@Column(name = "PROJECT_CODE")
private Integer pCode;
@Column(name = "BOL")
private String bol;
@Column(name = "BOLS")
private String bols;
@Column(name = "EID")
private Integer eId;
}
//项目类
public class Project implements Serializable {
private static final long serialVersionUID = 748569L;
@EmbeddedId
private ProjectId projectId;
@Column(name = "UPDATED_DATE")
private Date updatedDate;
@Column(name = "CREATED_DATE")
private Date createdDate;
}
//pcode、bol、bol、eId是复合键
//文档表,这里是项目之间更有趣的关系,文档是“pcode、bol、bols、eId+did”
//文件表
@Entity
@Table(name = "DOCUMENT")
@Data
public class Documents implements Serializable {
private static final long serialVersionUID = 14578523695L;
@EmbeddedId
private DocumentId documentId;
@Column(name = "JUR")
private String jur;
@Column(name = "DSEQUENCE")
private Integer dSequence;
@Column(name = "UPDATED_DATE")
private Date updatedDate;
@Column(name = "CREATED_DATE")
private Date createdDate;
}
两表文档之间的关系是项目的子表,我想做一个从项目方面的关系。 从文档到项目也可以 如何映射表之间的一对一关系
@OneToOne
@JoinColumns({@JoinColumn(name = "pCode", referencedColumnName = "PROJECT_CODE"),
@JoinColumn(name = "bol", referencedColumnName = "BOL"),
@JoinColumn(name = "bols", referencedColumnName = "BOLS"),
@JoinColumn(name = "eid", referencedColumnName = "EID")})
@MapsId("projectId")
private Project project;
谢谢你的回答,有可能从项目一方谈恋爱吗?是的,另一方也一样。确保在项目表中添加DocumenId列
@OneToOne
@JoinColumns({@JoinColumn(name = "pCode", referencedColumnName = "PROJECT_CODE"),
@JoinColumn(name = "bol", referencedColumnName = "BOL"),
@JoinColumn(name = "bols", referencedColumnName = "BOLS"),
@JoinColumn(name = "eid", referencedColumnName = "EID")})
@MapsId("projectId")
private Project project;