程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Spring 2.5中配置JPA

Spring 2.5中配置JPA

編輯:關於JAVA

本文提供了一個簡單的 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( http://sourceforge.net/project/showfiles.php? 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;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved