JPA欄


インフラストラクチャコース<Java ORM標準JPAプログラミング-基本編>まとめ

JPA - Java Persistence API

  • Java陣営のORM技術標準
  • アクション


  • JPAのアプリケーションとJDBC間の動作
  • ちょぞう



    朝礼



    なぜJPAを使うのですか?


  • SQL中心の開発では->オブジェクト中心

  • 生産性(CRUD)
  • :jpaを保存します.persist(member)
  • クエリー:メンバー=jpa.find(memberId)
  • 修正
  • :member.setName(「変更する名前」)
  • :jpaを削除します.remove(member)

  • メンテナンス
  • 次の場合は、SQLを1つずつ変更する必要があります.

  • 解決モードの不一致
    저장
    jpa.persist(album); // 개발자가 할일
    INSERT INTO ITEM .. // JPA가 처리 해줌
    INSERT INTO ALBUM .. // JPA가 처리 해줌
    
    조회
    Album album = jpa.find(Album.class, albumId); // 개발자가 할일
    SELECT ~~
        FROM ~~
        JOIN ~~ // JPA가 처리 해줌
    
    연관관계 저장
    member.setTeam(team);
    jpa.persist(member);
    
    객체 그래프 탐색
    Member member = jpa.find(Member.class, memberId);
    Team team = member.getTeam();

  • パフォーマンス:

  • プライマリ・キャッシュと一致することを確認

  • 同じ取引で同じエンティティを返す

  • DB IsolationレベルがRead Commitであっても、アプリケーションはReadを繰り返すことができることを保証します.
    String memberId = "100";
    Member m1 = jpa.find(Member.class, memberId); //SQL
    Member m2 = jpa.find(Member.class, memberId); //캐시
    
    println(m1 == m2) // true

  • トランザクションの書き込み遅延をサポート

  • INSERT


  • UPDATE


  • 遅延ロード:jpaからオプションにいつでも切り替えることができます
  • 遅延ロード:実際にオブジェクトを使用するときに
  • をロードする.
  • 今すぐロード:JOIN SQLを使用してすべての関連オブジェクトを一度に表示

  • データ・アクセスの抽象化とベンダーの独立性

  • 標準
  • <ソース:Java ORM標準JPAプログラミング-基本編>