随笔-54  评论-0  文章-2  trackbacks-0

    JPA

   今天讲的是JPA规范,还是由经验丰富的徐老师讲的,JPA是一门解决了各个ORM“诸侯争霸”的局面。详细点就是

1.JPA概述

JPA(Java Persistence API)Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据。JPA是在充分吸收了现有Hibernate(数据库平台无关)、TopLinkORM框架的基础上发展而来的,达到平台无关性(持久化技术产品)。

 JPAEJB的一部分。

2.jar包支持

 Hiberante核心包(8个文件)

hibernate-distribution-3.3.1.GA,加上mysql的驱动jar

3. JPA规范要求在类路径的META-INF目录下放置persistence.xml,文件的名称是固定的。

事务的特点:acid: atomic consistent  isolate durable

4.JPA编程建模

映射关系

                                           

 











代理主键:( 采用一种增长策略) @id

  定义id属性,相当于Hibernate中的OID.这两个注解必须显式指定,其他的映射是隐

  (默认).

 

5.方法上注解优先,测试CRUD操作

em.persist(order);

  em.find(Order.class,new Long(1));

  em.remove(order);

  em.merge(order);

6.JPA语法严谨,语句:select p from Person p where p.name=’tom’ select要写

7.不想往数据库中存,就注解  @Transient

8. @Lob

  @Basic(fetch=FetchType.LAZY)

  protected byte[] picture;

映射temporal(精确度)

  @Temporal(TemporalType.DATE)//该注解只能注util.DateCanlendar.

  protected Date creationDate;

 

9.组成关系

Customer homeAddress comAddress

 

Address{

 

}

 在类上加@Embeddable 


10.JPA关系  重点             

JPA关系 ManyToOne/OneToMany

 


@ManyToOne/@OneToMany

Class Order{

  @ManyToOne

  Customer customer ;


Class Customer{

  @OneToMany(mappedBy=“”)

  Set<Order> orders = ..

}

注:如果集合不采用泛型的话,如何才知道集合与谁关联.

   @OneToMany(targetEntity=Order.class,mappedby=“customer”)

  

今天就到此了!
posted on 2010-02-21 01:18 d66380022 阅读(205) 评论(0)  编辑  收藏