サービス層、DTO


First of all why DTO???
-JPAエンティティ・オブジェクトは、データを含むオブジェクトだけでなく、実際のデータベースに関連付けられたエンティティ・マネージャによって内部的に管理されるオブジェクトです.
-DTOがデータを一度に交換する場合とは異なり、ライフサイクルも異なります.

DTO


読み書き可能
  • 、使い捨て
  • の目的自体がデータ転送です.
  • DTOを使用すると、エンティティオブジェクトの範囲を定義できます.したがって、より安全なコードを記述できます.
    -欠点は、エンティティオブジェクトをDTOに変換するか、DTOをエンティティに変換する必要があることです.
  • サービス層の作成



    ※サービス層でDTOタイプを受け入れ、JPAを扱うためにはエンティティタイプのオブジェクトに変換する必要があります.

    DTO->ENTITY(デフォルト)



    DTOが受信した情報をエンティティに変換し、JPAを使用できるようになりました.

    REGISTER(登録)



    -コードの説明-
  • DTO->書込みJPA->JPA基本機能SAVE(記憶)
  • 顧客レポート、JPA処理
  • 最終保存後掲示板番号
  • に戻る

    リスト(LIST)


    1.画面に必要なDTO
    2.DTOをPageableに変換
    3.Page使いやすいDTOリストを画面に変換
    4.画面に必要なページ番号

    ページリクエストの処理(pageRequest DTO)


  • JPAを使用すると、ページ番号が0から始まることを考慮して1ページ目で0に設定できます.
  • のソートはパラメータとして使用され、後で様々な状況で再利用される.
  • ページ結果処理DTO(仮)


  • pageのエンティティオブジェクトをDTOに変換する必要があります.
  • 関数は、エンティティ->DTOに変換する機能です.
  • の複数の方向で使用できます.
  • サービス層/リスト機能/getList()


    ENTITY -> DTO

    getList()実装(BooleanBuilderは後で使用)

    リストデータページの操作
  • 画面の開始ページ番号
  • 画面の終了ページ番号(終了)
  • 前/後リンク(prev,next)
  • 現在のページ番号(ページ)
    	1. 끝번호=> tempEnd=(int)(Math.ceil(페이지번호/10.0)*10
        	2. 시작번호=> start =temEnd-9
    1ページの最後のページ番号:Math.ceil(0.1)10 =10
    10ページ目は最終回:Mathです.ceil(1)10 =10
    11ページ目の場合、最後の番号:Math.ceil(1.1)*10 =20
  • ちょっと待って.
    ※終了番号は実際の終了番号と異なる場合があります
    ※page<エンティティタイプ>を使用したgetTotalPages()
    さあ.

  • totalPage=result.getTotalPage(); //result=Page

  • end= totalPage > temEnd ? tempEnd : totalPage

  • next=toalPage>temEnd//次(次)
  • 上記の内容をpageResultDTOに反映するとこうなります。