Процедура. java
@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
}
CPTClinicianDescriptor
@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
}
CPTProcedures
@Entity
@Table(name = "cptprocedures")
public class CPTProcedures {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "Id")
private int Id;
@OneToOne(fetch=FetchType.EAGER)
@JoinColumn(name = "ProcedureId")
private Procedure procedure;
@Transient
private int procedureId;
@OneToOne(fetch=FetchType.EAGER)
@JoinColumn(name = "CPTCodeSet")
private CPTClinicianDescriptor cptClinicianDescriptor;
@Transient
private int cptCodeSet;
// getters and setters
}
Здесь у меня есть 3 таблицы в mySql, в этих 2 разных таблицах, я создал одну таблицу для отображения, которая имеет внешние ключи процедур и CPT, когда я получаю список с использованием процедуры. Она также должна получить соответствующие данные cpt .
ServiceImpl Как:
public List<Procedure> getCombinedProcedureList(int id) {
// TODO Auto-generated method stub
List<Procedure> pList = new ArrayList<Procedure>();
Procedure procedureList = procedureRepository.findCombById(id);
pList.add(procedureList);
return pList;
}
Когда я использую Репозиторий подобно
@Query(value = "SELECT * FROM procedures JOIN cliniciandescriptor ON cliniciandescriptor.Id = ?1",nativeQuery = true)
Procedure findCombById(int id);
этот запрос в репозитории процедур это получение только процедур. Итак, что я могу сделать, чтобы получить объединенный (объединенный) список из 2 (процедур и CPT) таблиц с использованием 3-й таблицы сопоставления.