隨筆-54  評論-0  文章-2  trackbacks-0

              

                                              JPA第二天

             今天JPA的第二天,繼續學習關聯,還有分頁,設置參數,單值檢索等重點,下午是EJB的介紹,實現。這其中足見老師水平之高,經驗太豐富了。好 ,作總結:

          1. 多對一單向關聯

          2.一對多

          @OneToMany(mappedBy=””) 忽略關聯關系

          mappedBy讓對端忽略關系的變化,相當于HibernateSet集合中的inverse,緩存就不再負責set

          em.find(Order.class,1);默認迫左/延遲

          3.一對一外鍵關聯

           <many-to-one name=”addr” column=”aid” class=”Addr” unique=”true”/>

           <one-to-one name=”” column=”” property-ref=”addr”/>

          JPA中的實現

          @OneToOne[觀察自動創建出來的表結構]

           class User{

              @OneToOne

              protected Addr addr;

           class Addr{

              @OneToOne(mappedBy=“addr", optional="false");

              protected User user;

           }

           mappedBy:控制權問題

           optional:false 表示沒有用戶的BillingInfo是不能單獨存在的.

          4.多對多

          @ManyToMany

           @ManyToMany

           protected Set<Student> students;

           @ManyToMany(mappedBy=“students")

           protected Set<Teacher> teachers;

          5.繼承關系

           Employee為例

                          Employee{id name age}

          HourEmployee(HE){rate}          SalaryEmployee(SE){salary}

          映射繼承關系樹:整個繼承關系樹對應一張表

          游離,臨時,持久 詳解:

          1.位于一個session緩存中,總是被一個

                session關聯。

             2.持久化對象和數據庫記錄相對應。

             3.清理緩存時,會根據對象屬性變化,同步

                更新數據庫。

             4.save把臨時對象轉變為持久化對象。

             5.loadfindget返回的對象總是持久化狀態。

             6.find方法返回的list存放的都是持久化對象。

             7.updatesaveSaveOrUpdateLock方法使游離對象裝變

               為持久化對象。

          6分頁:

           ("findCustomerByName");

           query.setParameter("name", "t,om");

           query.setMaxResults(10);

           query.setFirstResult(3); query = em.createNamedQuery

           List customers = query.getResultList();

          7、設置參數:

           SELECT o FROM Order i WHERE i.orderNo = ?1

           query.setParameter(1, 100.00);

           SELECT o FROM Order i WHERE o.price = :price

           query.setParameter("price", 100.00);

          8.單個實體檢索

           query.getSingleResult();

          9.

          查詢集合:

           WHERE c.orders IS EMPTY

           WHERE CONCAT(c.fname, c.lname) = 't,om'

           SELECT c.id, c.name FROM Customer c

          10.多態查詢

           SELECT c FROM Customer c WHERE c.name LIKE :name

          11.分組

           SELECT o.customer, COUNT(o.id) FROM Order o

                                               GROUP BY o.customer

          12.排序

           order by

          13.子查詢

           SELECT o FROM Order I WHERE o.customer IN

           (SELECT c FROM Customer c WHERE c.name LIKE ?1)

                                                  EJB

          1.ejb簡介:enterprise java bean就是開發分布式組件的。in

          ejb容器具有負載均衡 容 錯 線程池 安全 高并發性等功 能。

          EJB = pojo + @ 

          spring:業務層 管理bean的,容器key-value.沒有ejbjava ee

          j2ee : 開發分布式企業級應用的規范(jsp servlet jpa ejb

          2.開發EJB步驟:

          1.下載安裝jboss

          2.配置環境變量:

           JBOSS_HOME    JBOSS安裝目錄

          3.web服務器端口(${jboss_home}"server"default"deploy"jboss-web.deployer"server.xml[22]

          4.啟動。${jboss_home}"bin"run.bat

          IDE中配置服務器:

           windows/首選項/myeclipse/servers/jboss/4.x/運行模式(非調式模式) + jdk1.5.

          5.啟動服務器,進入管理頁面.http://localhost:8088/

           點擊[JMX Console]超鏈接

           點擊Jboss/service=JNDIView

           ok.

          今天就OK了!


          posted on 2010-02-22 00:14 d66380022 閱讀(261) 評論(0)  編輯  收藏
          主站蜘蛛池模板: 江川县| 汪清县| 海林市| 五常市| 左云县| 天水市| 阆中市| 霍城县| 福清市| 瑞昌市| 梅州市| 曲周县| 凤凰县| 鹤壁市| 海盐县| 大石桥市| 交城县| 柳林县| 库车县| 疏勒县| 德庆县| 辽宁省| 枣强县| 宜城市| 东乌| 彭州市| 扶余县| 宁明县| 奈曼旗| 武宣县| 玉龙| 灯塔市| 临桂县| 锡林浩特市| 大埔区| 达尔| 兴和县| 肇州县| 大庆市| 汾西县| 神池县|