skillup

技術ブログ

Database Java

persistence.xmlのプロパティについて

投稿日:2015年6月16日 更新日:

JavaEEではデータベースとの設定情報はpersistence.xmlに記述します。

(ユーザー名、パスワード、ポート、driver名、データベース名などの情報はglassfish-resource.xmlに記述します。)

最初のころはわけもわからず書いていましたが、最近少しずつプロパティの意味が分かってきました。

サンプルコードを例にちょっと説明したいと思います。

ちなみにDBとつながっていることが前提ですので、JavaEEで動かしている方はDBとつなげましょう。

わからない方はこの記事を参考にしてくださいね→GlassfishでDB接続

サンプルコード

IDEを使っていると自動生成されたりしますが簡単な意味などは分かっているとやはり困った時やカスタマイズするときに自分を助けてくれます。

各種プロパティ

persistence-unit

name

永続化ユニットの名称。要するに「データベースを識別するユニークな名称」です。大抵はEJBのソースに

@PersistenceContext(unitName = “XXXXXXX”)と記述してあるとおもいますので、これがユニット名になります。

なにはともあれこれがないとデータベースとそもそも接続できないので、始まりません。

transaction-type

EntityManagerの使用するトランザクションタイプを指定します。

ディフォルトではJTAになっていると思いますし、ほぼそれで問題ないかと思います。

これを自分で設定することもできます。

JavaEEの場合、自動でトランザクション処理をglassfishが行いますので例えばデータ入力時にエラーが起こると自動でロールバックされます。

jta-data-source

glassfishで定義しているデータソースのことです。大体はjdbc/XXXになると思います。

class

上のサンプルにはありませんが、バッチ処理などでJPAを使用する場合(つまりJavaEEではない場合)エンティティをここに登録しておかないと動きません。

JavaSEでJPAを使う場合はここにエンティティを登録しておきましょう。

exclude-unlisted-classes

現在、調べ中ですがどうやらJPAの対象化でないもののチェックを行うようです。

shared-cache-mode

JPAは自動でキャッシュ機能がついてます。

ここをNONE以外にしていると処理が残っていて、意図した処理と違う動きをすることがあります。

ちなみにキャッシュについては↓ここが詳しいです。

キャッシュ

property

key=>value式で様々なプロパティを設定できます。ここはプロバイダの実装に依存するみたいですね。

私が使ったことがあるのがEclipseLinkのみなのでご了承ください。

javax.persistence.schema-generation.database.action

これを使用するとプログラム実行時やデプロイ時にテーブルを自動生成してくれたりします。

create・・なければ作成

drop-and-create・・常にドロップし、エンティティからテーブルを作成

eclipselink.logging.parameters

プロパティがtrueのときにJPAで実行されるSQLをログに吐き出してくれます。

eclipselink.logging.level.sql

プロパティの値に応じたログを出力してくれます。プロパティの詳細な説明は下記リンクに記載してあります。

Eclipse How To Configure Logging

デプロイメント・プランの作成 > JPA

まだまだpersistence.xmlの応用範囲は広いですね。ちなみに参考にしたのは下記リンクです。

persistence.xmlの詳細

-Database, Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

JSF リダイレクト後のメッセージ&disabled=true

少々細かいですがJSFネタです。 Contents1 リダイレクト後のメッセージ2 h:commandbutton disabled=trueについて リダイレクト後のメッセージ JSFからManag …

no image

SQLServerについて

今までDB環境といえば、95%以上がMySQLで、残り5%がPostgreSQLでしたが、SQLServerに触ることに・・・ 名前しか聞いたことなかったのですが、ここ1か月ぐらいで少し調べたことなど …

no image

Netbeansのショートカット

超小ネタ。 Netbeansでのショートカットなど。 Contents1 整形2 サーバーログ消し&拡大3 インポートの挿入4 矩形選択5 関数の呼び出し元に戻る 整形 ショートカット(Alt+Shi …

no image

イテレーターに関して

Javaの繰り返しでイテレーターという概念がありますね。 今はあまり使われなくなっているようですが、資格の勉強をしていたら出てきたのと、たしなみとして知っておく必要があるため、記述します。 ソース [ …

no image

JPAでのデータベースとの同期

このブログでも何回か書いてきたJPAですが、新規レコードをインサートさせた際IDを取得し、そのIDをもとに何らかのキーを作る、そういう処理があったので紹介させていただきます。 何回か書いてますが、JP …

アーカイブ