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”)
今天就到此了!