我正在开发一个有很多层的项目,我无法弄清楚我做错了什么。我正在尝试查询我的数据库中的多行,然后将它们存储到一个列表中,然后我可以将其传递给我的其余层。
当我在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;
}
答案 0 :(得分:0)
检查你的REST控制器,它以递归方式调用自己的getAllUnits()
方法,而不是服务层中的方法。
你想要的是:
// Get All Units
@RequestMapping(value="/getAllUnits/", method=RequestMethod.GET)
public @ResponseBody List<UnitDTO> getAllUnits()
{
return unitService.getAllUnits();
}