*Entityの作成 [#xd911e1b] エンタープライズアプリケーションでは、通常データをデータベース(DB)に保存する。~ Java EEでDBとデータのやり取りをするには、Java Persistence API(JPA)を使用する。~ JDBCを使用する方法もあるが、JPAのほうが楽である。~ JDBCを使用する方法もあるが、JDBCでは多くの処理をプログラマーが行わなければならない。~ ~ JPAでは、テーブルの各行をオブジェクトに対応させるEntityを作成する。~ なお、JDKやGlassFishには標準でデータベース(JavaDB,Derby)が付属しているので、データベースのインストールは不要である。~ 他のデータベース製品を使用するときのみ、インストールを行い設定する。~ ~ ファイル→新規ファイルからEntityを作成する。~ プロジェクトに-ejbの名前のプロジェクトを選び、カテゴリ:持続性のファイル・タイプ:エンティティ・クラスを選択し、次へ。~ #ref(jpa1.gif)~ ~ エンティティのクラス名とパッケージ名を入力する。(デフォルトパッケージは使えないようだ)~ #ref(jpa2.gif)~ ~ 本来DBの接続先等を設定するが、とりあえずデータ・ソースにjdbc/sampleを選び、終了。 #ref(jpa3.gif)~ ~ Entityのソースコードが自動的に生成される。~ このクラスは@ではじまるアノテーションがいくつか使用されているが、次のような意味である。~ @Entity:このクラスがEntityであることを認識させるために付加する。(必須)~ @Id:主キー(行を一意に識別するキー)であることを表す。(各Entityに1つ必要)~ @GeneratedValue:一意な値を自動的に生成する。(strategy=GenerationType.AUTOは生成手法を自動選択にすることを意味)~ #ref(jpa4.gif)~ ~ Entityに必要な項目のフィールドを追加する。~ @Temporal:日付型のjavaクラスがDBのDATE(日付のみ)、TIME(時刻のみ)、TIMESTAMP(日付と時刻)のどれに対応するか指定する。~ #ref(jpa5.gif)~ ~ 追加したフィールドのgetter/setterは必ず作成する。~ 右クリック→コードを挿入(Alt+Insert)から、取得メソッドおよび設定メソッドを選ぶ。~ #ref(jpa6.gif)~ ~ getter/setterを作成するフィールドにチェックを入れ生成。~ #ref(jpa7.gif)~ ~ getter/setterが自動的に入力される。~ #ref(jpa8.gif)~ ~ 多くのデータ操作ではJPAのAPIを使用するが、@NamedQueryアノテーションを使用してSQL(通常のデータベースで操作を行う言語)のように操作を書くこともできる。~ name:名称、query:JPQL(JPAのSQLに似たクエリ言語)を記入する。~ 下ではこのテーブルから全部のデータをid順で取得する式を記入している。~ #ref(jpa9.gif)~ ~ ツリーから構成ファイルを開き、persistence.xmlをダブルクリックすると、DBの接続先等を修正できる。~ #ref(jpa10.gif)~ ~ *コメント [#b421b6f1] #comment