Immagina di avere il seguente metodo DAO:
public Employee getEmployeeById(Integer id){
NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(getJdbcTemplate());
String sql = "SELECT * FROM users WHERE id = :userId";
Map<String, Object> parameterMap = new HashMap<String, Object>();
parameterMap.put("userId", id);
return jdbcTemplate.queryForObject(sql, parameterMap, new EmployeeRowMapper());// Throws
//EmptyResultDataAccessException
}
Il metodo DAO viene utilizzato dal metodo controller:
public class EmployeeListController{
@Resource(name = "employeeDAO")
private EmployeeDAO employeeDAO;
@RequestMapping(value="/{empId}", method=RequestMethod.GET)
public String getEmployeeById(@PathVariable String empId, Model model){
model.addAttribute("employee", employeeDAO.getEmployeeById(Integer.valueOf(empId)));
return "employeesList";
}
}
Dove sarebbe meglio gestire l'eccezione? Nel metodo del controller o nel metodo DAO? Penso che nel controller sarebbe, perché altrimenti dovremmo restituire l'oggetto con proprietà vuote, il che non è buono. È corretto?