|Spring BootとAWSによって個別に実施されたWebサービス-4.4完全なクエリー


リストから降順にすべての投稿番号を表示



PostsRepositoryへのクエリーの追加


PostsRepositoryインタフェースにクエリーを追加する必要があります.
JPAのデフォルトでは提供されていないメソッドは、クエリーを記述することによって作成できます.
public interface PostsRepository extends JpaRepository<Posts, Long> {

    @Query("SELECT p FROM Posts p ORDER BY p.id DESC")
    List<Posts> findAllDesc();
}

PostsService

readOnly = trueクエリー機能のみが提供されます.トランザクション範囲を維持し、クエリー機能のみを保持するため、クエリーの速度が改善されます.
PostsListResponseDto変換->Listに戻ります.
    @Transactional(readOnly = true)
    public List<PostsListResponseDto> findByDesc() {
        return postsRepository.findAllDesc().stream()
                .map(PostsListResponseDto::new)
                .collect(Collectors.toList());
    }

PostsListResponseDto


エンティティに接続されたレイヤ.エンティティからデータを取得します.
@Getter
public class PostsListResponseDto {
    private Long id;
    private String title;
    private String author;
    private LocalDateTime modifiedDate;

    public PostsListResponseDto(Posts entity) {
        this.id = entity.getId();
        this.title = entity.getTitle();
        this.author = entity.getAuthor();
        this.modifiedDate = entity.getModifiedDate();
    }
}

IndexController

Model:ストレージサーバテンプレートエンジンで使用可能なオブジェクトpostsService.findAllDesc()でインポートされた結果はposts形式でindex画面ファイルに渡されます.
    @GetMapping("/")
    public String index(Model model) {
        model.addAttribute("posts", postsService.findByDesc());
        return "index";
    }