I have created very simple app with persistence context (hibernate as provider) to read some value from database. I use Eclipse with Maven.
First, I get
/lib
According to the documentation ( http://tomee.apache.org/tomee-and-hibernate.html ), the following ones are sufficient and in fact they worked for me:
/lib/antlr-2.7.7.jar
/lib/dom4j-1.6.1.jar
/lib/hibernate-commons-annotations-4.0.2.Final.jar
/lib/hibernate-core-4.2.21.Final.jar
/lib/hibernate-entitymanager-4.2.21.Final.jar
/lib/hibernate-validator-4.3.2.Final.jar
/lib/javassist-3.18.1-GA.jar
/lib/jboss-logging-3.1.0.GA.jar
All these .jars
are contained in the Hibernate ORM 4.2.x download ( http://hibernate.org/orm/ ), except for the Hibernate Validator, which is a separate download ( http://hibernate.org/validator/ ).
Using the javaee-api
maven artifact with a scope of provided
you can now use the JPA specification in your project. However, if you have been using some Hibernate specific features, classes or annotations before, you can still refer to Hibernate in your pom.xml
to match those dependencies:
org.apache.openejb
javaee-api
6.0-4
provided
org.hibernate
hibernate-entitymanager
4.2.21.Final
provided
Edit
:
JdbcDriver com.mysql.jdbc.Driver
JdbcUrl jdbc:mysql://localhost:3306/my_dbname?autoReconnect=true
UserName foo
Password bar
validationQuery = SELECT 1
JtaManaged true
You can also put the above
definition into WEB-INF/resources.xml
and ship it with your application instead:
Now that you told TomEE how to establish a connection, define a JTA datasource in /src/main/java/META-INF/persistence.xml
:
org.hibernate.ejb.HibernatePersistence
java:openejb/Resource/myJtaDatabase
Obtain an EntityManager
in a CDI bean or EJB like this:
@PersistenceContext(unitName = "my_persistence_unit")
private EntityManager em;
I am using Hibernate 4.2.21 (JPA 2.0, Java EE 6) along with TomEE 1.7.2. Any TomEE 1.7.x, 1.6.x and 1.5.x will work. However, you cannot use Hibernate 4.3+ (JPA 2.1 / Java EE 7), as TomEE 1.7.x and below only support Java EE 6. If you really want to use Java EE 7 features along with TomEE, this blog post might be helpful: 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 already includes a javassist-
, so you don't have to copy one.