【发布时间】:2017-06-19 04:50:40
【问题描述】:
select a.empname,b.dname from employee a, department b where a.deptid=b.deptid
Employee 表包含empid,empname & deptid
部门表包含deptid & dname
【问题讨论】:
select a.empname,b.dname from employee a, department b where a.deptid=b.deptid
Employee 表包含empid,empname & deptid
部门表包含deptid & dname
【问题讨论】:
hql 连接有一些变化。 对于 hql 连接,我们使用表的类 如果您有 Employee 和 Department 类。 您可以使用类似的查询
select a.empname,b.dname from Employee as a
left outer join Employee.department as b
其中empname、dname和department是Employee、Department和Employee类的字段。
以上查询将返回您必须正确处理的列表。 然后将此列表转换为 json 对象
【讨论】:
我希望这会有所帮助。您需要一个 DTO 来存储数据并将其作为 JSON 发送到前端。
@Query("new com.example.service.model.search.SearchDTO"
+"(e.empname, d.dname) "
+ "from department d "
+ "join d.deptid e "
+ "where e.id=?1")
public List<SearchDTO> findByIdEmployee (Long idEmployee );
可能的 DTO 结构:
public class SearchDTO {
String EnpName;
String DepName;
public SearchDTO(String EnpName, String DepName) {
this.EnpName = EnpName;
this.DepName = DepName;
}
public String getEnpName() {
return EnpName;
}
public void setEnpName(String EnpName) {
this.EnpName = EnpName;
}
public String getDepName() {
return DepName;
}
public void setDepName(String DepName) {
this.DepName = DepName;
}
}
【讨论】:
三种方法,
最佳使用:一对一映射。
【讨论】: