【发布时间】:2012-07-09 09:39:24
【问题描述】:
我看到一些 Spring/Hibernate 代码对在 DAO 接口方法中声明 DataAccessException 有不同的策略。
有些会明确声明,有些则不会(或只是偶尔):
public interface FlightDao {
boolean decrementSeat(Long flightId, int quantity);
List<Flight> findFlights(String fromAirportCode, String toAirportCode) throws DataAccessException;
public List<Flight> getFlights();
Flight getFlight(Long id);
Flight getFlight(String flightNumber);
void save(Flight flight);
}
最佳实践是什么?为什么?
更新
从spring tutorial 的第 13.2.2 节开始,使用 @Repository 注释实现 DAO pojo 以确保将底层 ORM(或 JDBC)异常自动转换为 DataAccessException(运行时)异常层次结构非常重要。
【问题讨论】: