DataAccessException
DAOインターフェイスメソッドでの宣言に関して異なるポリシーを持つSpring/Hibernateコードがいくつかあります。
明示的に宣言するものもあれば、宣言しないものもあります(または時々だけ):
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);
}
ベストプラクティスと見なされるものとその理由は何ですか?
アップデート
春のチュートリアルのセクション13.2.2から、実装するDAO pojoに@Repositoryで注釈を付けて、基になるORM(またはJDBC)例外がDataAccessException(ランタイム)例外階層に自動的に変換されるようにすることが重要です。