亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 >
插入式持久性提供者的承諾:Kodo、OpenJPA和Hibernate
作者:網絡轉載 發布時間:[ 2013/2/27 14:47:53 ] 推薦標簽:

我的郵箱中有一個bug報告。它報告了在Weblogic server環境中的Hibernate和Kodo之間切換JPA持久性提供者時的一個問題。在再現這個bug的過程中,我學到了一些知識,包括如何在Weblogic Server 10.0中安裝Hibernate,以及如何使用一個特定的持久性提供者X部署基于JPA的Web應用程序,然后再使用另一個持久性提供者Y重新部署它而不會使整體(指Weblogic Server)崩潰。

這次經歷促使我在一段停頓之后又開始了文章寫作(New Yorker雜志的一幅漫畫觸發了我的寫作靈感)。

總之,這篇文章將:

    描述在Weblogic Server 10.0中安裝和配置Hibernate的工作過程
    解答為何不必在Weblogic Server 10.0中安裝Kodo或OpenJPA
    展示一個非常簡單的基于無狀態會話Bean的服務的例子,并演示在Weblogic Server運行狀態下在Hibernate、OpenJPA和Kodo之間切換JPA提供者的步驟
    再現產生問題的bug,不僅是因為報告者認為這很嚴重,在經過簡短的實驗之后,我也認為如此
    介紹這個bug如何造成應用服務器環境中JPA引導的變化

測試提供者切換的一個非常簡單的方法

我使用了一個簡單的服務來檢驗是否使用了正確的提供者并且運行無誤——雖然只是初步的持久性操作。這個簡單的服務接口(我將基于它進行測試)如下所示:

JPAService.java

01 
                       
package service;
02 /**
03  * A very simple service to verify the persistence provider being used.
04  * The service also can persist a simple log message in a database.
05  * 
06  * @author ppoddar
07  *
08  */
09 
                       
public interface JPAService {
10   /**
11    * Returns the name of the active provider.
12    */
13   public String getProvider();
14  
15   /**
16    * Logs the given message.
17    *
18    * @param message an arbitray message string.
19    *
20    * @return a Message instance that has been persisted. The service will
21    * attach a timestamp to the message.
22    */
23   public Message log(String message);
24 }
                     

關于這個服務將如何實現還不明確;甚至沒有說明它將使用JPA。這是服務定義應有的方式——實現技術的不明確性(這里省略了通常的 IMO——這是我的觀點——也許是謙虛的,也許恰恰相反)。
基于JPA和會話Bean的應用程序入門

我將簡短地討論一下如何在使用JPA的無狀態會話Bean中實現這個服務。這是相當基本的知識。如果您已經熟悉JPA,可以直接跳到。

在這個簡單的例子中,一個使用JPA的無狀態會話Bean實現了這個服務。

JPAServiceBean.java

01 
                       
package session;
02
03 import javax.ejb.Remote;
04 import javax.ejb.Stateless;
05 import javax.persistence.EntityManager;
06 import javax.persistence.PersistenceContext;
07
08 import service.JPAService;
09 import service.Message;
10
11 /**
12  * A Stateless Session bean that uses an injected JPA EntityManager to implement
13  * the contract of {@link JPAService}.
14  *
15  * @author ppoddar
16  *
17  */
18 @Stateless
19 @Remote(JPAService.class)
20 public class JPAServiceBean {
21   /**
22    * Inject an EntityManager for a persistent unit simply named
23    * 
                       
test.
24    * It is this name which must be specified in the configuration file
25    * META-INF/persistence.xml as
26    * <pre>
27    *   <persistence-unit>
28    *                  

上一頁123456下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 日本三级唾液浓厚在线观看 | 国产白丝在线 | 午夜欧美激情 | 日本大蕉香蕉大视频在线观看 | 99精品视频不卡在线观看免费 | 在线观看日本一区 | 青草青草久热精品视频在线网站 | 在线观看亚洲国产 | 女性成人毛片a级 | 怡红院手机在线 | 未成18年禁止观看的免费 | 日韩精品第一 | 精品国产成人在线 | 高清中文字幕在线 | 日本乱人伦免费播放 | 一级毛片无毒不卡直接观看 | 日韩 欧美 综合 在线 制服 | 国产成人免费片在线视频观看 | 欧洲一级视频 | 黄色免费大片 | 性欧美极品 | 性三级视频| 97碰视频人人做人人爱欧美 | 久久天天拍天天爱天天躁 | 天堂伊人网 | 久久精品视频91 | 欧美日韩在线永久免费播放 | 久久久久国产一级毛片高清版 | 国产一区二区高清视频 | 国产国产成人人免费影院 | 草草在线免费视频 | 又猛又黄又爽无遮挡的视频网站 | 精品欧美一区二区三区在线观看 | 在线免费观看中文字幕 | 欧美成人精品免费播放 | 福利在线看| 亚洲天堂网站在线 | 三级在线观看视频 | 成人欧美一区在线视频在线观看 | 一级一毛片 | 在线免费观看色片 |