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