软件自学网 - 电脑软件学习教程!

软件自学网

软件自学:Spring 2.5中配置JPA

时间:2014-08-01 10:05来源:网络整理 作者:软件自学网 点击:
本文提供了一个简单的 Spring 框架 standalone 环境下,如何 step-by-step 去开发 JPA 的向导。 JPA 的规范最开始时是由 EJB 3.0 的持久性机制产生的, 它被公认为是把简单的 POJOs 持久化的机制 。你只需少量 JAR 在 classpath 中,配置一点 Spring 的 bean

本文提供了一个简单的 Spring 框架 standalone 环境下,如何 step-by-step 去开发 JPA 的向导。 JPA 的规范最开始时是由 EJB 3.0 的持久性机制产生的, 它被公认为是把简单的 POJOs 持久化的机制 。你只需少量 JAR 在 classpath 中,配置一点 Spring 的 bean, 就能在你喜爱的IDE中去开始感受 JPA 的强大威力了。我们在这里使用的是 Glassfish JPA - 一个基于 Oracle’s TopLink ORM framework 的开源项目。

初始化设置

保证你使用的是Java 5 (EJB 3.0 中 JPA 的先决条件).

从 https://glassfish.dev.java.net/downloads/persistence/JavaPersistence.html 下载 glassfish JPA jar (注意: 我使用的是 “V2_build_02″ jar, 但该版本后的版本也应回往前兼容的.)

从“installer” jar 中解压,并运行: java -jar glassfish-persistence-installer-v2- b02.jar

把 toplink-essentials.jar 加入你的 classpath

把数据库的驱动 JAR 也加入( 我用的是 version 1.8.0.1 的 hsqldb.jar 作为例子,但实际上你只 需很少的改变就能适配到另外的数据库 )

加入2.0 M5 以上版本的Spring JAR( ? group_id=73357) - spring.jar - spring-jpa.jar - spring-mock.jar

最后,把这些 JAR 也加入到你的classpath 中: - commons-logging.jar - log4j.jar - junit.jar

领域模型 (domain model)

这个例子中我们只是有目的地列举了3个简单的domain model. 要注意的是这例子中我们使用了 annotation。 使用 JPA 时,一般会选择用annotation 或 XML 文件,又或者两者一起配合用,去指定 ORM(object-relational mapping)元数据。在这里,我们只是选择了单独用annotation, 因为只需要在 domain model 的代码中加入简短的描述就能马上办到。 首先, 看看餐厅 Restaurant class:

package blog.jpa.domain;
import java.util.Set;
import  javax.persistence.CascadeType;
import javax.persistence.Entity;
import  javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import  javax.persistence.Id;
import javax.persistence.JoinColumn;
import  javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import  javax.persistence.OneToOne;

@Entity
public class Restaurant  {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long  id;

private String name;

@OneToOne(cascade = CascadeType.ALL)
private  Address address;

@ManyToMany
@JoinTable(inverseJoinColumns = @JoinColumn(name  = "ENTREE_ID"))
private Set entrees;

public long getId() {
return  id;
}

public void setId(long id) {
this.id = id;
}

public  String getName() {
return name;
}

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容