Entityの作成

エンタープライズアプリケーションでは、通常データをデータベース(DB)に保存する。
Java EEでDBとデータのやり取りをするには、Java Persistence API(JPA)を使用する。
JDBCを使用する方法もあるが、JDBCでは多くの処理をプログラマーが行わなければならない。

JPAでは、テーブルの各行をオブジェクトに対応させるEntityを作成する。
なお、JDKやGlassFish?には標準でデータベース(JavaDB,Derby)が付属しているので、データベースのインストールは不要である。
他のデータベース製品を使用するときのみ、インストールを行い設定する。

ファイル→新規ファイルからEntityを作成する。
プロジェクトに-ejbの名前のプロジェクトを選び、カテゴリ:持続性のファイル・タイプ:エンティティ・クラスを選択し、次へ。

#ref(): File not found: "jpa1.gif" at page "Entityの作成"


エンティティのクラス名とパッケージ名を入力する。(デフォルトパッケージは使えないようだ)

#ref(): File not found: "jpa2.gif" at page "Entityの作成"


本来DBの接続先等を設定するが、とりあえずデータ・ソースにjdbc/sampleを選び、終了。

#ref(): File not found: "jpa3.gif" at page "Entityの作成"


Entityのソースコードが自動的に生成される。
このクラスは@ではじまるアノテーションがいくつか使用されているが、次のような意味である。
@Entity:このクラスがEntityであることを認識させるために付加する。(必須)
@Id:主キー(行を一意に識別するキー)であることを表す。(各Entityに1つ必要)
@GeneratedValue?:一意な値を自動的に生成する。(strategy=GenerationType?.AUTOは生成手法を自動選択にすることを意味)

#ref(): File not found: "jpa4.gif" at page "Entityの作成"


Entityに必要な項目のフィールドを追加する。
@Temporal:日付型のjavaクラスがDBのDATE(日付のみ)、TIME(時刻のみ)、TIMESTAMP(日付と時刻)のどれに対応するか指定する。

#ref(): File not found: "jpa5.gif" at page "Entityの作成"


追加したフィールドのgetter/setterは必ず作成する。
右クリック→コードを挿入(Alt+Insert)から、取得メソッドおよび設定メソッドを選ぶ。

#ref(): File not found: "jpa6.gif" at page "Entityの作成"


getter/setterを作成するフィールドにチェックを入れ生成。

#ref(): File not found: "jpa7.gif" at page "Entityの作成"


getter/setterが自動的に入力される。

#ref(): File not found: "jpa8.gif" at page "Entityの作成"


多くのデータ操作ではJPAのAPIを使用するが、@NamedQuery?アノテーションを使用してSQL(通常のデータベースで操作を行う言語)のように操作を書くこともできる。
name:名称、query:JPQL(JPAのSQLに似たクエリ言語)を記入する。
下ではこのテーブルから全部のデータをid順で取得する式を記入している。

#ref(): File not found: "jpa9.gif" at page "Entityの作成"


ツリーから構成ファイルを開き、persistence.xmlをダブルクリックすると、DBの接続先等を修正できる。

#ref(): File not found: "jpa10.gif" at page "Entityの作成"


コメント



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-06-28 (土) 01:50:08 (3589d)