JPA
今天講的是JPA規(guī)范,還是由經(jīng)驗(yàn)豐富的徐老師講的,JPA是一門(mén)解決了各個(gè)ORM“諸侯爭(zhēng)霸”的局面。詳細(xì)點(diǎn)就是
1.JPA概述
JPA(Java Persistence API)是Sun官方提出的Java持久化規(guī)范。它為Java開(kāi)發(fā)人員提供了一種對(duì)象/關(guān)系映射工具來(lái)管理Java應(yīng)用中的關(guān)系數(shù)據(jù)。JPA是在充分吸收了現(xiàn)有Hibernate(數(shù)據(jù)庫(kù)平臺(tái)無(wú)關(guān))、TopLink等ORM框架的基礎(chǔ)上發(fā)展而來(lái)的,達(dá)到平臺(tái)無(wú)關(guān)性(持久化技術(shù)產(chǎn)品)。
JPA是EJB的一部分。
2.jar包支持
Hiberante核心包(8個(gè)文件)
hibernate-distribution-
3. JPA規(guī)范要求在類(lèi)路徑的META-INF目錄下放置persistence.xml,文件的名稱(chēng)是固定的。
事務(wù)的特點(diǎn):acid: atomic consistent isolate durable
4.JPA編程建模
映射關(guān)系

代理主鍵:( 采用一種增長(zhǎng)策略) @id
定義id屬性,相當(dāng)于Hibernate中的OID.這兩個(gè)注解必須顯式指定,其他的映射是隱
式(默認(rèn))的.
5.方法上注解優(yōu)先,測(cè)試CRUD操作
em.persist(order);
em.find(Order.class,new Long(1));
em.remove(order);
em.merge(order);
6.JPA語(yǔ)法嚴(yán)謹(jǐn),語(yǔ)句:select p from Person p where p.name=’tom’ select要寫(xiě)
7.不想往數(shù)據(jù)庫(kù)中存,就注解 @Transient
@Basic(fetch=FetchType.LAZY)
protected byte[] picture;
映射temporal(精確度)
@Temporal(TemporalType.DATE)//該注解只能注util.Date和Canlendar.
protected Date creationDate;
9.組成關(guān)系
Customer homeAddress comAddress
Address{
}
10.JPA關(guān)系 重點(diǎn)
JPA關(guān)系 ManyToOne/OneToMany
@ManyToOne/@OneToMany
Class Order{
@ManyToOne
Customer customer ;
Class Customer{
@OneToMany(mappedBy=“”)
Set<Order> orders = ..
}
注:如果集合不采用泛型的話(huà),如何才知道集合與誰(shuí)關(guān)聯(lián).
@OneToMany(targetEntity=Order.class,mappedby=“customer”)