第2週-永続的な管理


h 2生成時エラー


データベース「C:/ユーザー/ユーザーアカウント/テスト」が見つかりません.事前に作成することも、リモート・データベース作成を許可することもできます(セキュリティ環境では推奨されません)[90149-200]90149/90149.

エラー発生時の解決方法


  • localhost:8082以降のセッションキーは保持され、接続が試みられる.

  • jdbc:h2:tcp://localhost/~/testまたはjdbc:h 2~/testで接続
  • JPAバージョン


    -プロジェクト環境と一致
    JPAにもバージョンがあるので、使用するSpringバージョンに応じてJPAバージョンを調整するエラーは少ないです.
    バージョンはSpring>Project>Spring Bootに入り、Reference>Hibernateバージョンを表示します.
    どのSpringがどのバージョンを使用するか.

    Dialect

    <pre>  
    
    <code>
    
     <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect">
    
    </code>
    
    </pre>
    JPAはDialectを使用し、特定のデータベースに依存しません.
    mysql、Oracleなどのプロパティに一致するDialectのみを使用し、Queryを変更する必要はありません.

    持続性管理



    EntityManagerFactoryは、Webサーバが表示されたときに一度だけ生成されます.
    Entity Managerは、お客様からのリクエストが受信されるたびに作成され、消去されます.
    EntityManagerは、3つのスレッド間では絶対に共有できません.

    JPQL


    JPAを使用すると、エンティティオブジェクトを中心に開発されます.
    エンティティオブジェクトも検索されます.
    すべてのデータベースデータをオブジェクトに変換して検索できません.
    検索条件を含むSQLが必要です.この場合はJPQLが必要です.

    持続性コンテキスト


    JPAの最も重要な用語を理解する
    エンティティを永続的に保存する環境
    EntityManager.persist(entity);
    実際のデータベースではなく永続性コンテンツにEntityを格納する方法
    エンティティーマネージャを使用して永続コンテナにアクセスします.

    エンティティのライフサイクル


  • 非永続性

  • 永続

  • いつまでも続く

  • 削除
  • 非永続状態(new/transient)


    エンティティにはライフサイクルがあり、最初に作成されたオブジェクトです.
    JPAとは関係ないので非永続的な状態です.

    えいきゅうじょうたい


    entityManager.persistenceを入力すると、永続的な状態になります.
    オブジェクトを保存された永続性ステータスに変更します.

  • クエリーDBではなく、クエリー時にプライマリキャッシュを検索
    値がある場合はプライマリ・キャッシュの結果を返し、ない場合はDBをクエリーして返します.

  • アプリケーション・レベルで永続性エンティティの一貫性を保証します.
  • プライマリ・キャッシュを使用して、読み取り可能レベルのトランザクション・アイソレーション・レベルを繰り返します.
    データベースではなくアプリケーションの観点から提供
    2479172トランザクションをサポートするために書き込み遅延を指定します.永続的な状態にしても、データベースはすぐにクエリーを失うことはありません.
    Commitに遭遇するとDBに飛んでいきます.
  • 変更検出機能を提供します.
  • プライマリ・キャッシュに入力した値をスナップショットに配置し、コミット時にエンティティとスナップショットを比較します.エンティティが変更された場合、更新クエリーは遅延書き込みリポジトリに保存され、DBに反映されてコミットされます.

    更新

  • 永続コンテキストに格納され、データベースに反映されます.
    しかし、永続性コンテキストを空にするという意味ではありません.
  • insert、delete、updateなどの永続的なコンテキストとデータベースの同じ状態
  • JPQLクエリは、実行時に自動的にリフレッシュされます.
  • トランザクションという名前のワークユニットは、コミット前に同期するだけで重要です.
  • じゅんたいきゅうじょうたい

  • は零速から準零速状態
  • に分離する.