前言:
在开发中会遇到数据库为树形机构的表设计,级表中的数据的子id对应上一级的父id(parentId),这时候需要用到sql的自连接查询来得到树形结构的结果,并设计实体类来接收此类数据
表的自连接查询,即自己连接自己来查询数据:
sql样例如下:
SELECT t1.id one_id,t1.pname one_name,
t2.id two_id,t2.pname two_name,
t3.id three_id,t3.pname three_name
FROM teachplan t1
LEFT JOIN teachplan t2 ON t1.id = t2.parentid
LEFT JOIN teachplan t3 ON t2.id = t3.parentid
WHERE t1.parentid = '0'
AND t1.courseid = '4028e581617f945f01617f9dabc40000'
得到的数据为:
- 设计实体类
@Data
@ToString
public class TeachplanNode implements Serializable {
private String id;
private String pname;