【发布时间】:2016-07-07 02:39:13
【问题描述】:
我有两张表 Departments, Teachers,如下所示:
Departments Teachers
--- ---
D_ID T_ID
Code Name
Dept (logically reference D_ID)
由于 Teachers 中的一些旧记录,包含无效的 Dept 值,例如,Dept = 5 的教师,但 Departments 中没有 D_ID = 5。
在 SQL 中,我可以使用
SELECT t.*, COALESCE(d.Code, t.Dept) as Dept FROM Teachers t LEFT JOIN Departments d ON d.D_ID = t.Dept 得到预期的结果,但我不确定如何在 JPA 中使用 LEFT JOIN,并将结果作为教师实体返回。
我已经定义了 Teachers 实体和 Departments 实体,但由于旧记录,我不确定是否应该在 Teachers 或 Departments 实体中定义 @OneToOne / @OneToMany / @ManyToOne 关系。
class Teachers
String T_ID;
String Name;
String Dept;
@Transient
String DeptCode;
class Departments
String D_ID;
String Code;
我是使用 JPA 的初学者,我正在使用 JPA 2.0 与 SpringDataJPA 和 Hibernate。
请提供一些帮助。
【问题讨论】:
标签: hibernate jpa-2.0 spring-data-jpa