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

问题描述 投票:1回答:1

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

当我在post man上输入URL并点击运行时,它失败并说。

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

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;
  }

服务

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

    return list;
  }

休息

  // Get All Units
  @RequestMapping(value="/getAllUnits/", method=RequestMethod.GET)
  public @ResponseBody List<UnitDTO> getAllUnits()
  {
    List<UnitDTO> unitList = getAllUnits();
    return unitList;
  }
java sql spring jpql dto
1个回答
0
投票

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

你想要的是:

  // Get All Units
  @RequestMapping(value="/getAllUnits/", method=RequestMethod.GET)
  public @ResponseBody List<UnitDTO> getAllUnits()
  {
    return unitService.getAllUnits();
  }
© www.soinside.com 2019 - 2024. All rights reserved.