隨筆-54  評(píng)論-0  文章-2  trackbacks-0

              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))、TopLinkORM框架的基礎(chǔ)上發(fā)展而來(lái)的,達(dá)到平臺(tái)無(wú)關(guān)性(持久化技術(shù)產(chǎn)品)。

           JPAEJB的一部分。

          2.jar包支持

           Hiberante核心包(8個(gè)文件)

          hibernate-distribution-3.3.1.GA,加上mysql的驅(qū)動(dòng)jar

          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

          8. @Lob

            @Basic(fetch=FetchType.LAZY)

            protected byte[] picture;

          映射temporal(精確度)

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

            protected Date creationDate;

           

          9.組成關(guān)系

          Customer homeAddress comAddress

           

          Address{

           

          }

           在類(lèi)上加@Embeddable 


          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”)

            

          今天就到此了!
          posted on 2010-02-21 01:18 d66380022 閱讀(213) 評(píng)論(0)  編輯  收藏
          主站蜘蛛池模板: 涪陵区| 宣威市| 长兴县| 鲁甸县| 南城县| 平谷区| 临江市| 巴塘县| 曲阜市| 玛曲县| 太原市| 甘谷县| 大连市| 苏尼特右旗| 沐川县| 华亭县| 佛坪县| 南溪县| 清远市| 静乐县| 文化| 岑溪市| 仙游县| 竹北市| 八宿县| 同江市| 定西市| 永嘉县| 曲阳县| 潜江市| 平泉县| 湖口县| 邛崃市| 夏河县| 潜山县| 桓台县| 安丘市| 兴业县| 田东县| 巴东县| 汤阴县|