JPA
紹介する
Java Persistence API オブジェクト-リレーションシップマッピング、ORMフレームワークビジネスロジックセット複数の実装:、Hibernate、EclipseLink、DataNucleusを含む
オブジェクトからDBテーブルへのマッピング
アプリケーションオブジェクトを分析し、対応するsqlを生成し、JDBC APIを使用してデータベースを使用する.
JDBC APIとは?
Java DataBase Connectivity API API
は、データベースのタイプを考慮することなく、データベースに関連するタスクを処理するのに役立ちます.
長所
CRUD SQLを記述する必要はありません. クエリー結果をオブジェクトにマッピングする操作も、自動処理されることが多い. データ・ストレージ・レイヤで記述する必要があるコードは大幅に減少します.対象を中心に
SQLを開発し、生産性とメンテナンス能力を向上させる. DBを変更する場合、コードを変更することなく簡単に変更できます.JPAが解決した問題
SQLを直接使用するときに発生する問題
SQLによる
DBデータの管理 JDBC APIを使用して作成されたアプリケーション
=>CRUD反復ソリューション
:JPAを使用することで、開発者はSQLを直接作成する必要がなく、JPAが提供するAPIを使用するだけでよい.パターンの相違
アプリケーションの開発に伴い、内部の複雑さは増加し続けている.
オブジェクト向けプログラミングは多種の設備を提供し、システムの複雑さを制御することができる.
例えば、抽象化、カプセル化、情報隠蔽、継承、多形性等の.
BUT、リレーショナル・データベースはデータ中心で、構造化->上のオブジェクト向けプログラミングには同じデバイスはありません.解決
:JPAは、開発者の代わりにオブジェクトとテーブルをマッピングすることによってパターンが一致しない.Spring-boot JPA声明
オブジェクト
@Entity
JPAマッピング・テーブルを使用するクラスに@Entity宣言を付ける必要があります. @Entityを持つクラスはJPAが管理する.せいげんじょうけん
基本ジェネレータは実装する必要があります. finalクラス、enum、interfaceクラス、innerクラスは使用できません. を保存するフィールドでfinalを使用しないでください.ツールバーの
name:エンティティ名を指定します.デフォルトはクラス名です.
@Table
エンティティにマッピングするテーブルを指定します.ツールバーの
name:マッピングするテーブルの名前を指定する catalog:マッピングデータベースのcatalog アーキテクチャ:DBアーキテクチャにマッピング
一意制約:DDLクエリーの作成時に制約を作成
プライマリキー
@Id
プライマリ・キーの生成方法
ダイレクトアサイメント
プライマリ・キー
Id のみ
自動生成ポリシーの使用
@GenerateValueと鍵生成ポリシーの追加を選択
鍵生成ポリシー
IDENTITY:プライマリ・キー生成をデータベースに委任します. @Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;
SEQUENCE:データベース・シーケンスを使用してプライマリ・キーを割り当てます. TABLE:鍵を使用してテーブルを生成します. AUTO:選択したデータベースに基づいて、上記の3つのポリシーのいずれかを自動的に選択します.フィールド
@Column
オブジェクトフィールドとDBテーブルコラムをマッピングします.ツールバーの
name
マップするテーブルのコラム名を指定します.
insertable true:エンティティストレージに宣言されたフィールドを保存します.
false:データベースに格納されません.(読み取り専用) updatable true:エンティティの変更時に宣言されたフィールドも、とともに変更されます.
false:データベースは変更されません.(読み取り専用) table
指定フィールドを他のテーブルにマッピングする
nullable
null が許可されているかどうかを確認します.
unique
拘束条件を保留する場合はを使用します.
columnDefinition
DB列情報を直接指定する場合はを用いる.
length
varcharの長さの調整(デフォルト255) precision, scale
BigInteger、BigDecimalタイプ使用
各数字は小数位/小数位を含み、を表す.