本文提供了一个简单的 Spring 框架 standalone 环境下如何 stepbystep 去开发 JPA 的向导 JPA 的规范最开始时是由 EJB 的持久性机制产生的 它被公认为是把简单的 POJOs 持久化的机制你只需少量 JAR 在 classpath 中配置一点 Spring 的 bean 就能在你喜爱的IDE中去开始感受 JPA 的强大威力了我们在这里使用的是 Glassfish JPA 一个基于 Oracles TopLink ORM framework 的开源项目
初始化设置
保证你使用的是Java (EJB 中 JPA 的先决条件)
从 l> 下载 glassfish JPA jar (注意: 我使用的是 V_build_″ jar 但该版本后的版本也应回往前兼容的)
从installer jar 中解压并运行 java jar glassfishpersistenceinstallervbjar
把 toplinkessentialsjar 加入你的 classpath
把数据库的驱动 JAR 也加入( 我用的是 version 的 hsqldbjar 作为例子但实际上你只需很少的改变就能适配到另外的数据库 )
加入 M 以上版本的Spring JAR( ?group_id=) springjar springjpajar springmockjar
最后把这些 JAR 也加入到你的classpath 中 commonsloggingjar logjjar junitjar
领域模型 (domain model)
这个例子中我们只是有目的地列举了个简单的domain model 要注意的是这例子中我们使用了annotation 使用 JPA 时一般会选择用annotation 或 XML 文件又或者两者一起配合用去指定ORM(objectrelational mapping)元数据在这里我们只是选择了单独用annotation 因为只需要在domain model 的代码中加入简短的描述就能马上办到 首先 看看餐厅 Restaurant class:
borderColorDark=#ffffff cellPadding=
width=
align=center borderColorLight=black border=
>e
e
>
package blogjpadomain;
import javautilSet;
import javaxpersistenceCascadeType;
import javaxpersistenceEntity;
import javaxpersistenceGeneratedValue;
import javaxpersistenceGenerationType;
import javaxpersistenceId;
import javaxpersistenceJoinColumn;
import javaxpersistenceJoinTable;
import javaxpersistenceManyToMany;
import javaxpersistenceOneToOne;
@Entity
public class Restaurant {
@Id
@GeneratedValue(strategy = GenerationTypeAUTO)
private long id;
private String name;
@OneToOne(cascade = CascadeTypeALL)
private Address address;
@ManyToMany
@JoinTable(inverseJoinColumns = @JoinColumn(name = ENTREE_ID))
private Set entrees;
public long getId() {
return id;
}
public void setId(long id) {
thisid = id;
}
public String getName() {
return name;
}