1. 必要な Hibernate .jar を<tomee-home>/lib
ドキュメント(http://tomee.apache.org/tomee-and-hibernate.html)によると、次のもので十分であり、実際に私にとってはうまくいきました:
<tomee-home>/lib/antlr-2.7.7.jar
<tomee-home>/lib/dom4j-1.6.1.jar
<tomee-home>/lib/hibernate-commons-annotations-4.0.2.Final.jar
<tomee-home>/lib/hibernate-core-4.2.21.Final.jar
<tomee-home>/lib/hibernate-entitymanager-4.2.21.Final.jar
<tomee-home>/lib/hibernate-validator-4.3.2.Final.jar
<tomee-home>/lib/javassist-3.18.1-GA.jar
<tomee-home>/lib/jboss-logging-3.1.0.GA.jar
これら.jars
はすべて、Hibernate ORM 4.2.x ダウンロード ( http://hibernate.org/orm/ ) に含まれています。ただし、別のダウンロード ( http://hibernate.org/validator/ )である Hibernate Validator は除きます。
2. pom.xml を編集します
javaee-api
のスコープで maven アーティファクトを使用するprovided
と、プロジェクトで JPA 仕様を使用できるようになりました。ただし、以前に Hibernate 固有の機能、クラス、または注釈を使用していた場合でも、pom.xml
これらの依存関係を一致させるために Hibernate を参照できます。
<!-- JPA spec (required) -->
<dependencies>
<dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0-4</version>
<scope>provided</scope>
</dependency>
<!-- Hibernate specific features (only if needed) -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.2.21.Final</version>
<scope>provided</scope>
</dependency>
3. データベース接続を定義する
編集<tomee-home>/conf/tomee.xml
:
<Resource id="myJtaDatabase" type="DataSource">
JdbcDriver com.mysql.jdbc.Driver
JdbcUrl jdbc:mysql://localhost:3306/my_dbname?autoReconnect=true
UserName foo
Password bar
validationQuery = SELECT 1
JtaManaged true
</Resource>
代わりに、上記の<Resource>...</Resource>
定義をWEB-INF/resources.xml
アプリケーションに入れて出荷することもできます。
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<!-- Put <Resource> elements here -->
<resources>
4. JTA データソース
接続を確立する方法を TomEE に指示したので、次のように JTA データソースを定義します/src/main/java/META-INF/persistence.xml
。
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="my_persistence_unit">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:openejb/Resource/myJtaDatabase</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
<!-- As many hibernate properties as you need, some examples: -->
<property name="hibernate.show_sql" value="false" />
<property name="hibernate.format_sql" value="true" />
<!-- Drop and then re-create the database schema (don't do this in production) -->
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
</persistence>
5. JPA の使用を開始する
EntityManager
次のように CDI Bean または EJB で を取得します。
@PersistenceContext(unitName = "my_persistence_unit")
private EntityManager em;
ファイナルノート
休止状態のバージョン 4.3+
TomEE 1.7.2 と共に Hibernate 4.2.21 (JPA 2.0、Java EE 6) を使用しています。TomEE 1.7.x、1.6.x、および 1.5.x はすべて動作します。ただし、Hibernate 4.3+ (JPA 2.1 / Java EE 7) は使用できません。TomEE 1.7.x 以下は Java EE 6 しかサポートしていないためです。TomEE と一緒に Java EE 7 機能を本当に使用したい場合は、このブログ投稿が役立つ場合があります。 : http://rmannibucau.wordpress.com/2013/07/19/little-tip-to-help-you-to-test-javaee-7-in-tomee-with-tomee-maven-plugin/
TomEE 1.5.x
TomEE 1.5.x には既に が含まれているjavassist-<version>.jar
ため、コピーする必要はありません。