【发布时间】:2020-01-24 12:32:51
【问题描述】:
这里有两张桌子;两者都有 ID 作为主键。我想知道如何根据它们的 ID 在没有外键的情况下加入这些表。服务实现应该是什么,存储库中应该有什么? @Query和JOINS怎么写?
@Entity
@Table(name = "procedures")
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
public class Procedure implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ProcedureId")
private int id;
@Column(name = "ProcedureName")
private String name;
@Column(name = "ProcedureCode")
private String code;
@Column(name = "ProcedureDesc")
private String desc;
// getters and setters
}
@Entity
@Table(name = "cliniciandescriptor")
public class CPTClinicianDescriptor {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "Id")
private int id;
@Column(name = "ConceptId")
private int conceptId;
@Column(name = "CPTCode")
private String cptCode;
@Column(name = "ClinicianDescriptorId")
private int clinicianDescriptorId;
@Column(name = "ClinicianDescriptor")
private String clinicianDescriptor;
// getters and setters
}
【问题讨论】:
-
你为什么不想使用外键?另外:
ProcedureCode和CPTCode对我来说看起来像是自然主键,所以你应该考虑不使用代理id列
标签: spring spring-boot spring-data-jpa