【问题标题】:Java DTO into list with jpalq query使用 jpalq 查询将 Java DTO 放入列表
【发布时间】:2018-08-09 17:05:10
【问题描述】:

我正在从事一个有很多层的项目,但我不知道我做错了什么。我正在尝试在我的数据库中查询多行,然后将它们存储到一个列表中,然后我可以将其传递给我的休息层。

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

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

// 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】:

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

你想要的是:

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

【讨论】:

  • 就是这样。我有 List unitList = getAllUnits();而不是 List unitList = unitService.getAllUnits();
猜你喜欢
  • 1970-01-01
  • 2011-04-25
  • 1970-01-01
  • 1970-01-01
  • 2021-08-13
  • 1970-01-01
  • 2022-09-30
  • 2022-08-14
  • 1970-01-01
相关资源
最近更新 更多