<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Let's go inside

    this blog is deprecated as a result of laziness.
    posts - 59, comments - 2, trackbacks - 0, articles - 0

    TrailBlazer第12天--Configure Persistence Context

    Posted on 2006-07-28 04:03 Earth 閱讀(541) 評論(0)  編輯  收藏 所屬分類: JavaEE5/EJB3

    這是TrailBlazer Hike 3最后一節(jié),? 全文翻譯

    要在應(yīng)用中發(fā)布entity beans,你僅需要將這些類文件打包成JAR. EJB 3.0 規(guī)范要求你在JAR包的META-INF目錄下提供一個persistence.xml。 在persistence.xml定義你將使用哪個數(shù)據(jù)庫,定義EntityManager的默認行為。你既可以把JAR發(fā)布到server的deploy目錄下,也可以把JAR放在EAR包中。
    ?
    persistence.xml文件
    ???
    persistence.xml包含一個或多個persistence-unit元素. 每一個persistence-unit定義了一個persistence context名字, data source設(shè)置, 和vendor specific properties. 以下是一個典型的persistence.xml文件.

    < persistence >
    ??
    < persistence-unit? name ="ejb3trail" >
    ????
    < jta-data-source > java:/DefaultDS </ jta-data-source >
    ????
    < properties >
    ??????
    < property? name ="hibernate.hbm2ddl.auto"
    ????????????????value
    ="create-drop" />
    ????
    </ properties >
    ??
    </ persistence-unit >
    </ persistence >

    它定義了以 ejb3trail命名的EntityManager 是用 java:/DefaultDS 作為數(shù)據(jù)源來持久化它所管理的entity beans的. 如果你想使用一個不同的數(shù)據(jù)庫來映射當(dāng)前persistence context中的entity beans,你可以改變數(shù)據(jù)源的JNDI名字以替換java:/DefaultDS(你需要提供相應(yīng)的*-ds.xml文件). 另外,還指定了JBoss服務(wù)器應(yīng)該在應(yīng)用deploy之時給這些entity beans創(chuàng)建相應(yīng)的表, 在應(yīng)用un-deploy之時刪除這些表。注意應(yīng)用的deploy和un-deploy是在server startup或shutdown時進行的。

    persistence.xml中的properties是application server specific的. 在JBoss AS中, 它們是簡單的Hibernate properties因為Hibernate是JBoss EJB 3.0的內(nèi)在實現(xiàn)框架.你可以在[server_installation]/server/deploy/ejb3.deployer/META-INF/persistence.properties 中找到一系列可用的properties 和它們的默認值.
    ?
    從一個特定的context中注入EntityManager
    ???? 正如我們所看到的,JAR包中的persistence.xml可以用不同的名字定義多個persistence contexts.為了從一個有名字的persistence context中得到EntityManager,? 你只需要指定@PersistenceContext標注的unitName屬性. 下面的例子就是把ejb3trail persistence context注入到EntityManager.

    @PersistenceContext(unitName = " ejb3trail " )
    EntityManager?em;

    如果滿足下面的條件,你可以省去unitName:

    1,僅在persistence.xml文件中定義了一個persistence context.
    2,在應(yīng)用中使用了scoped classloader.
    ?
    第2條可能需要更多的解釋. 如果在EAR包中包含WEB應(yīng)用, 意味著你需要在EAR包中的META-INF目錄下提供一個 jboss-app.xml文件. 在這個文件中你可以給classloader指定任意一個名字,這里是一個例子:

    < jboss-app >
    ??
    < loader-repository >
    ????trailblazer:app=ejb3
    ??
    </ loader-repository >
    </ jboss-app >

    如果你在應(yīng)用中未定義scoped classloader, 所有該應(yīng)用中定義的persistence contexts將在整個服務(wù)器中全局可用, 相應(yīng)地@PersistenceContext injection將在global context查找EntityManager. 這樣你可以使用在該應(yīng)用之外定義的persistence context. 但是此時你不得不通過unitName顯示地指定persistence context的名字。
    ?
    小結(jié)?
    ??? 在這一節(jié)中,我們討論了怎樣給應(yīng)用配置多個persistence contexts.接下來我們將探討一章全新的內(nèi)容。

    主站蜘蛛池模板: 成人a毛片视频免费看| 亚洲熟妇无码久久精品| 色综合久久精品亚洲国产| 永久免费av无码网站大全| 亚洲国产成AV人天堂无码| 免费能直接在线观看黄的视频| 毛片免费观看的视频在线| 精品亚洲国产成人| 97人伦色伦成人免费视频| 免费一级毛片不卡在线播放| 亚洲jizzjizz少妇| 无码国产亚洲日韩国精品视频一区二区三区| 亚洲AV无码不卡在线观看下载| 色一情一乱一伦一视频免费看| 台湾一级毛片永久免费| 国产AV无码专区亚洲A∨毛片| 丁香花在线视频观看免费| 久久久久亚洲av无码专区蜜芽| 亚洲视频在线观看免费视频| 77777午夜亚洲| 四虎永久在线精品免费影视 | 国产AV无码专区亚洲AV漫画| j8又粗又长又硬又爽免费视频| 久久亚洲AV永久无码精品| 免费国产叼嘿视频大全网站| 亚洲精品在线视频观看| 免费的一级片网站| 久久免费视频一区| 亚洲国产成人无码av在线播放| 日韩免费毛片视频| 华人在线精品免费观看| 亚洲精品人成网在线播放影院| 亚洲视频在线免费看| 羞羞网站免费观看| 久久亚洲AV成人无码电影| 女人张开腿等男人桶免费视频 | 亚洲深深色噜噜狠狠爱网站| 国产成人免费在线| 亚洲日本韩国在线| 亚洲免费黄色网址| 日本视频免费观看|