大学のプロジェクト用の単純なライブラリAPIを作成しています。私は本が付いたデータベースを持っています。それぞれのIDは自分のIDです。私はSpring Bootを使ってサービスを作っています。私はJpaRepository<Book, Long>
を拡張するBookRepository
とサービスの実装を持っています。後でJPA EmptyResultDataAccessException処理
@Service
public class BookServiceImpl implements BookService{
@Autowired
private BookRepository bookRepository;
@Async
@Override
public void delete (Long id){
bookRepository.delete(id);
}
}
、RESTコントローラが要求を処理します。
今@RestController
public class BookServiceController{
@Autowired
private BookService bookService;
@RequestMapping(value="books/{id}", method = RequestMethod.DELETE)
public ResponseEntity<Book> deleteBook (@PathVariable("id") Long id){
bookService.delete(id);
return new ResponseEntity<Book>(HttpStatus.OK);
}
}
、私は123のIDと、たとえば、データベースにない書籍を削除した場合、私は」 dはEmptyResultDataAccessExceptionをスローします。
私の質問はどこで例外を処理するのですか?そのようにNullPointerExceptionをキャストしないようにするにはどうすればよいですか?
ありがとうございます。
(1)別の「BookService」をリポジトリに重ねる理由はありますか? (2)できるだけフィールドインジェクションへのコンストラクタインジェクションを推奨する。 – chrylis