更新



リファレンス
  • 金英漢インフラ講座-Java ORM標準JPAプログラミング-基本編
  • Java ORM標準JPAプログラミング
  • 更新

  • 永続コンテキストへの変更をデータベースに反映する
  • 通常、DBトランザクションのコミット時にリフレッシュ
  • が発生する.
  • DBを永続コンテキストの状態と同じにします.
  • オカレンスのリフレッシュ

  • 変更検出
  • 修正エンティティ遅延書込みSQLリポジトリに登録
  • 書き込み遅延SQLリポジトリクエリーデータベース(登録、変更、削除クエリー)
  • へ送信
  • リフレッシュが発生した場合、プライマリ・キャッシュは変更されません.
  • 永続性コンテキストをリフレッシュします。

  • em.flush()-ダイレクトコール
  • トランザクションコミット-自動コール
  • をリフレッシュ
    実行
  • JPQLクエリー-自動呼び出し
  • をリフレッシュ

    JPQLクエリの実行時にリフレッシュが自動的に呼び出される理由

     em.persist(memberA);
    em.persist(memberB);
    em.persist(memberC);
    //중간에 JPQL 실행
    query = em.createQuery("select m from Member m", Member.class);
    List<Member> members= query.getResultList();
  • の上のコードのように、リフレッシュが自動呼び出しされていない場合、クエリー結果は空になります.
  • リフレッシュ・モード・オプション

    em.setFlushMode(FlushModeType.COMMIT)
  • FlushModeType.AUTO:コミットまたはクエリー時のリフレッシュ(デフォルト)
  • FlushModeType.COMMIT:コミット時のみ
  • をリフレッシュ

    n/a.結論

  • 更新非クリア永続コンテキスト
  • 永続コンテキストの変更をデータベース
  • に同期
  • トランザクションは重要です->コミット前に同期するだけで