我不了解 Spring,所以如果你真的想使用它,你将不得不稍微更新我的答案(例如 Spring 有自己的初始化实体管理器的机制)。
依赖关系
这是我最近的一个桌面项目使用的配置(某些版本可能已经演变),使用 Hibernate 而不是 JPA(即它使用 EntityManager):
org.hibernate:hibernate:3.2.7.ga
org.hibernate:hibernate-annotations:3.4.0.GA
org.hibernate:hibernate-entitymanager:3.4.0.GA
您可能还需要:
commons-collections:commons-collections:3.2.1
asm:asm:3.2
cglib:cglib:2.2
dom4j:dom4j:1.6.1
antlr:antlr:2.7.7
c3p0:c3p0:0.9.1.2
您可以在以下位置找到所有内容行家中心 http://search.maven.org/#browse.
配置
您需要 META-INF 文件夹中的有效 persistence.xml :
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="NONJTAPersistenceUnit" transaction-type="RESOURCE_LOCAL">
<class>com.yourpackage.EntityClass1</class>
<class>com.yourpackage.EntityClass2</class>
<class>com.yourpackage.EntityClass3</class>
<properties>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
<property name="hibernate.connection.url" value="jdbc:hsqldb:hsql://hostXYZ/yourdatabase"/>
<property name="hibernate.connection.username" value="sa"/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
使用您自己的数据库信息/驱动程序更新它。
Usage
以通常的方式创建实体类实体类1, 实体类2, 实体类3注册于持久性.xml上面的文件。
那么,对于实体管理器...由于您不在 EE 环境中,因此您必须从实体管理器工厂 :
EntityManagerFactory emf = Persistence.createEntityManagerFactory("NONJTAPersistenceUnit");
EntityManager em = emf.createEntityManager();
(同样,Spring 可能提供其他方式来获取它,请查看文档)。
从那里您可以执行例如持久操作,如下所示:
em.getTransaction().begin();
em.persist(entity);
em.getTransaction().commit();
您需要阅读一些文档才能使整个内容与 Spring 保持一致。
EDIT
示例查询:
Query query = em.createQuery("select e from EntityClass1 where e.name = :name");
query.setParameter(:name, "foo");
List results = query.getResultList();
EDIT
更新版本:
hibernate-core-3.5.1-Final
hibernate-entitymanager-3.5.1-Final
hibernate-jpa-2.0-api-1.0.0.Final
hibernate-annotations-3.5.1-Final
hibernate-commons-annotations-3.2.0.Final
dom4j-1.6.1
slf4j-api-1.6.4
slf4j-log4j12-1.6.4
...