JPA
   今天讲的是JPA规范,还是由经验丰富的徐老师讲的,JPA是一门解决了各个ORM“诸侯争霸”的局面。详细点就是
1.JPA概述
JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据。JPA是在充分吸收了现有Hibernate(数据库平台无关)、TopLink等ORM框架的基础上发展而来的,达到平台无关性(持久化技术产品)。
 JPA是EJB的一部分。
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.Date和Canlendar.
  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”)
  
今天就到此了!