如何按父位置获取子位置和子子位置?

时间:2018-06-21 10:59:39

标签: java mysql spring spring-boot spring-data-jpa

我想按父位置获取子位置和子子位置。

例如,我的位置结构如下:
      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,则意味着它也应该再次获取这些子位置的子对象,依此类推。

我的数据库表如下:

location DB Table image

如何使用Spring Boot实施此操作?

感谢与问候,

希尔帕·库尔卡尼

0 个答案:

没有答案