Spring 2.5中配置JPA

本文提供了一个简单的 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;
}

时间: 2024-08-01 21:04:32

Spring 2.5中配置JPA的相关文章

在spring的配置文件中配置c3p0和在hibernate的配置文件中配置c3p0有什么区别?

问题描述 在spring的配置文件中配置c3p0和在hibernate的配置文件中配置c3p0有什么区别? 在spring的配置文件中配置c3p0和在hibernate的配置文件中配置c3p0有什么区别? 我最近在学习如何配置struts2+spring+hibernate,其中数据库连接池使用c3p0,一开始在hibernate.cfg.xml中添加c3p0连接的信息如下: <property name="hibernate.connection.provider_class"

spring boot项目中使用jpa的一个未解之谜

公司最近主要的工作就是把之前的一个项目进行几乎全面的重构,之所以说几乎全面,是因为除开业务逻辑外全部换血: 框架由spring+struts2+mybatis改为spring boot+jpa 数据库由sybase+h2改为oracle+redis 子系统之间的交互由activemq改为http 代码具体实现全部重写 对一个运行了若干年的项目进行这样的大动作,路程无疑是漫长而复杂的.在进行了一系列设计文档的编写.评审.修订.再评审之后,终于可以开始码代码了. 本以为码代码终于可以松一口气,没想到

网络相册开发(4)——Spring中配置JPA

在src/META-INF下添加persistence.xml 1.<?xml version="1.0" encoding="UTF-8"?>2.<persistence xmlns="http://java.sun.com/xml/ns/persistence"3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"4. xsi:schemaLoca

jpa-osgi框架中使用JPA,怎样把persistence.xml文件中的数据库连接部分的配置独立出来

问题描述 osgi框架中使用JPA,怎样把persistence.xml文件中的数据库连接部分的配置独立出来 如题:osgi框架中使用JPA,怎样把persistence.xml文件中的数据库连接部分的配置单独拿出来,由于persistence.xml有多个,为方便连接不同的数据库,不使用spring框架时,怎样将驱动.url.用户名.密码独立成一个文件 解决方案 http://bbs.csdn.net/topics/391912381 解决方案二: 在一个properties文件中配置不同的驱

JPA 不在 persistence.xml 文件中配置每个Entity实体类的2种解决办法

原文:JPA 不在 persistence.xml 文件中配置每个Entity实体类的2种解决办法 在Spring 集成 Hibernate 的JPA方式中,需要在persistence配置文件中定义每一个实体类,这样非常地不方便,远哥目前找到了2种方法.   这2种方式都可以实现不用persistence.xml文件,免去每个Entity都要在persistence.xml文件中配置的烦恼,但是这种方式Entity实体类的主键字段注解@ID要放到 getXXX()方法上,否则不认.   方式1

解析Java中如何获取Spring中配置的bean

本篇文章是对在Java中如何获取Spring中配置的bean进行了详细的分析介绍,需要的朋友参考下   一.什么是Spring?Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架 二.如何在程序中获取Spring配置的bean呢?方法一:在初始化时保存ApplicationContext对象代码: 复制代码 代码如下: ApplicationContext ac = new FileSystemXmlApplicationContex("applicationContex

在使用spring的过程中,service层写在配置文件中好呢还是注解配置好呢?

问题描述 在使用spring的过程中,service层写在配置文件中好呢还是注解配置好呢? 在使用spring的过程中,service层写在配置文件中好呢还是注解配置好呢?在配置文件中是这样的注解配置时这样的@Service(""userService"")说说理由哦. 解决方案 一般应用性开发使用注解就可以.它较xml配置方式的优势在于省去了xml复杂的配置,而且不需要维护两套内容(xml配置方式需要维护service类和xml文件).但是如果需要修改相关内容,注

【Spring】如何在单个Boot应用中配置多数据库?

    原创 BOOT 为什么需要多数据库? 默认情况下,Spring Boot使用的是单数据库配置(通过spring.datasource.*配置具体数据库连接信息).对于绝大多数Spring Boot应用,这是符合其使用场景的,因为Spring Boot提倡的是微服务理念,每个应用对应一个单独的业务领域.但在某些特殊情况下,一个应用对应多个数据库又是无法避免的,例如实施数据库分库后原本单个数据库变为多个数据库.本文就结合实际代码介绍如何在单个Boot应用中配置多数据库,以及与之相关的Drui

《Spring攻略(第2版)》——1.2 配置Spring IoC容器中的Bean

1.2 配置Spring IoC容器中的Bean 1.2.1 问题 Spring提供了一个强大的IoC容器来管理组成应用的bean.为了利用容器服务,你必须配置运行于Spring IoC容器中的Bean. 1.2.2 解决方案 你可以通过XML文件.属性文件.注释甚至API来配置Spring IoC容器中的Bean. Spring允许你在一个或者多个bean配置文件中配置bean.对于简单的应用程序,可以在单个配置文件中集中配置bean.但是对于有许多bean的大型应用,你应该根据其功能(例如控