SpringBoot JPA Sort 書き方が変わった?
起きたこと
SpringBootでJPAを使用したサービスクラスを書いてみようとしていましたが、日本の皆さんのコードサンプルを試してもエラーとなってしまう。
ダメだった例
@Service @Transactional public class XxxService { @Autowired XxxRepository repository; public List<Xxx> selectAll() { return repository.findAll(new Sort(Sort.Direction.ASC, "id")); } }
9行目で、findAllメソッドの引数になっているSortクラス。そんなコンストラクタはないぞと言われてしまいます。
日本語のどのサイトを見ても上記で良いような書き方なので悩みましたが、外国のチュートリアルが書かれたサイトでは以下のように書くよう解説されていました。
拝見した外国のサイト https://www.baeldung.com/spring-data-sorting
解決した例
@Service @Transactional public class XxxService { @Autowired XxxRepository repository; public List<Xxx> selectAll() { return repository.findAll(Sort.by(Sort.Direction.ASC, "id")); } }
9行目で、findAllは、staticなbyというメソッドを使えと。
こうするとコンパイルエラーにはならず動作しました。
ここが動くことが最終目的ではなかったので、細かいことは後で調べるとして、ひとまず解決。
ダメだった理由がわかるかた、コメントでこっそり教えて頂けると嬉しいです。
この投稿へのトラックバック
トラックバックはありません。
- トラックバック URL
この投稿へのコメント