使用jpalq查询将Java DTO列入列表

时间:2018-03-01 15:21:40

标签: java sql spring jpql dto

我正在开发一个有很多层的项目,我无法弄清楚我做错了什么。我正在尝试查询我的数据库中的多行,然后将它们存储到一个列表中,然后我可以将其传递给我的其余层。

当我在post man上输入网址并点击运行时,它会失败并说出来。

处理程序处理失败;嵌套异常是java.lang.StackOverflowErro

DAO

// get all units

  @SuppressWarnings("unchecked")
  @Override
  public List<UnitDTO> getAllUnits()
  {
    String sql = super._jpaql;
    Query query = super._entityManager.createQuery(sql);
    List<UnitDTO> list = (List<UnitDTO>)query.getResultList();

    return list;
  }

SERVICE

  // Get All Units
  @Override
  public List<UnitDTO> getAllUnits() throws ScorpioException
  {
    List<UnitDTO> list = unitDao.getAll();

    return list;
  }

REST

  // Get All Units
  @RequestMapping(value="/getAllUnits/", method=RequestMethod.GET)
  public @ResponseBody List<UnitDTO> getAllUnits()
  {
    List<UnitDTO> unitList = getAllUnits();
    return unitList;
  }

1 个答案:

答案 0 :(得分:0)

检查你的REST控制器,它以递归方式调用自己的getAllUnits()方法,而不是服务层中的方法。

你想要的是:

  // Get All Units
  @RequestMapping(value="/getAllUnits/", method=RequestMethod.GET)
  public @ResponseBody List<UnitDTO> getAllUnits()
  {
    return unitService.getAllUnits();
  }