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