JPAを使用するシンプルなJavaアプリを構成してパッケージ化する方法
-
19-09-2019 - |
質問
私はJPAを学ぼうとしています。JPAを使用してデータベーステーブルをクエリして更新するシンプルなJavaコマンドラインアプリを作成したいと思います。これを行うために必要な単純なコードをマッピングしました。しかし、ディレクトリ構造を構成する方法、Persistence.xmlファイル、パッケージなどを配置する場所がわかりません。これは迅速で汚い学習エクササイズなので、できるだけシンプルに保ちたいと思います。誰かがこれを行うために手順を綴ることができますか?
WebLogic 10.3を使用しています。
解決
persistence.xmlは META-INF
Persistenceクラスと同じレベルのディレクトリ。 これが例です いくつかの有効で無効な構成の。私が書いた以外のJava EEアプリでは、persistence.xmlでjarを構築します WEB-INF/classes/META-INF/
, 、私のJPAクラスが入っているからです WEB-INF/classes/
.
他のヒント
WeblogicがJavaコマンドラインアプリと何が関係しているかを理解しているわけではありません:)
ともかく、 全て 探している詳細はで利用できます 持続ユニット のセクション Java EE 5チュートリアル 私が以下に引用していること:
持続ユニット
Persistenceユニットは、によって管理されるすべてのエンティティクラスのセットを定義します
EntityManager
アプリケーションのインスタンス。このエンティティクラスのセットは、単一のデータストア内に含まれるデータを表します。持続ユニットは、によって定義されます
persistence.xml
構成ファイル。 JARファイルまたはディレクトリMETA-INF
ディレクトリには含まれていますpersistence.xml
永続ユニットのルートと呼ばれます。永続ユニットの範囲は、永続ユニットのルートによって決定されます。各永続ユニットは、Persistenceユニットのスコープに固有の名前で識別する必要があります。
永続的なユニットは、WARまたはEJB JARファイルの一部としてパッケージ化することも、JARファイルとしてパッケージ化して、戦争または耳ファイルに含めることができます。
永続的なユニットをEJB JARファイルのクラスのセットとしてパッケージ化する場合、
persistence.xml
EJBジャーに入れる必要がありますMETA-INF
ディレクトリ。永続的なユニットを戦争ファイルのクラスのセットとしてパッケージ化する場合、warファイルのwarファイルに配置する必要があります
WEB-INF/classes/META-INF
ディレクトリ。戦争または耳ファイルに含まれるJARファイルに永続性ユニットをパッケージ化する場合、JARファイルを配置する必要があります。
- の中に
WEB-INF/lib
戦争のディレクトリ。- 耳ファイルのトップレベル。
- EARファイルのライブラリディレクトリに。
persistence.xml
ファイル
persistence.xml
1つ以上の永続ユニットを定義します。以下は例ですpersistence.xml
ファイル。<persistence> <persistence-unit name="OrderManagement"> <description>This unit manages orders and customers. It does not rely on any vendor-specific features and can therefore be deployed to any persistence provider. </description> <jta-data-source>jdbc/MyOrderDB</jta-data-source> <jar-file>MyOrderApp.jar</jar-file> <class>com.widgets.Order</class> <class>com.widgets.Customer</class> </persistence-unit> </persistence>
このファイルは、名前が付けられた永続ユニットを定義します
OrderManagement
, 、JTA認識データソースを使用しますjdbc/MyOrderDB
. 。jar-file
とclass
要素は、管理された永続性クラスを指定します:エンティティクラス、埋め込み可能なクラス、マッピングされたスーパークラス。jar-file
要素は、管理された永続性クラスを含むパッケージ化された永続性ユニットに表示されるJARファイルを指定し、クラス要素は管理された永続性クラスに明示的に名前を付けます。
jta-data-source
(jta-awareデータソースの場合)およびnon-jta-data-source
(JTA以外のデータソース)要素は、コンテナが使用するデータソースのグローバルJNDI名を指定します。