我想按父位置获取子位置和子子位置。
例如,我的位置结构如下:
location structure image
示例1:
我想获取印度的子地区-意味着它应该获取其子代的子代。
它应该和孩子们一起去马哈拉施特拉邦卡纳塔克邦。
示例2:
如果我想取回卡纳塔克邦的孩子,那应该取回Banglore和jaynagar。
在我的数据库表中,我有一个字段 has_children ,如果它具有子位置,它将设置为1。如果location没有任何子位置,则has_children将设置为0。
我已编写以下查询以获取子位置:
@Override
public List<Location> getChildLocations(Long pk_location_id) {
Query query = em.createQuery("SELECT loc FROM Location loc where loc.deleted=0 and " + "loc.parent_location_id="+pk_location_id);
return (List<Location>) query.getResultList();
}
但是对于此查询,我仅获得该位置的主要子级。例如,如果我通过了印度的pk_location_id,那么我只会得到印度的孩子,即卡纳塔克邦和马哈拉施特拉邦。但是我也想获取这些位置的子对象。
如果我传递了一个位置ID,则意味着它也应该检查子位置的has_children字段,如果该字段设置为1,则意味着它也应该再次获取这些子位置的子对象,依此类推。
我的数据库表如下:
如何使用Spring Boot实施此操作?
感谢与问候,
希尔帕·库尔卡尼