Spring Boot Data JPA でSortしたデータを取得する方法をご紹介します。
まずはデータ部分に相当する @Entityクラスを作ります。Lombokを使用しているので、@Dataをクラスに付与してSetter/Getterを自動生成しています。
@Data
@Entity
public class TestInfo {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private Date updateTime;
}
そして、データ部分を扱うRepositoryを作ります。今回は「ソートして取得」の定義を作ります。
import org.springframework.data.domain.Sort;
...
@Repository
public interface TestInfoRepository extends JpaRepository<TestInfo, Integer> {
List<TestInfo> findByid(Integer id, Sort sort);
}
Controller 部に先ほど定義したRepositoryを使ってデータを取得するように書きます。
import org.springframework.data.domain.Sort;
...
@Controller
public class SampleController {
@Autowired
TestRepository testRepository;
@RequestMapping(value = "/", method = RequestMethod.GET)
public void index() {
// Sort sort = new Sort(Direction.ASC, "testStatus").and(new Sort(Direction.DESC, "updateTime"));
Sort sort = new Sort(Direction.DESC, "updateTime");
List<TestInfo> testInfoList = testRepository.findByid(id, sort);
}
}
これで完成です。Sortしたデータを取得することが出来ます。