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

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

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

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業(yè)。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
     

    liferay中生成one to many 關(guān)系說明

    1:在service.xml中配置

    For example

    <column

           name="shoppingItemPrices"

           type="Collection"

           entity="ShoppingItemPrice"

           mapping-key="itemId"

    />

    說明: entitymapping-key屬性被指定將建立一個一對多的關(guān)系。

    2:運行ant build

           生成相關(guān)文件

    3:在生成的實體實現(xiàn)類中,如ShoppingItemImp.java,新增getShoppingItemPrice()方法

           For example

           public List getItemPrices()

           throws PortalException, SystemException {

    /*此處return2種寫法

    第一種是要求在關(guān)系實體中定義根據(jù)關(guān)聯(lián)實體id進行查詢的方法,如:

    */

    return ShoppingItemPriceLocalServiceUtil.getItemPrices(getItemId());

    /*

    第二種是通過業(yè)務(wù)層代理類獲的實體的持久類實例進行操作

    */

    return ActiveEntryLocalServiceUtil.getActiveEntryPersistence().getCheckItemEntries(this.getActiveId());

        }

    4:再次運行 ant build

    如此便可在使用實體的時候直接獲取關(guān)聯(lián)對象實體

    如:

    List list = ActiveEntry.getCheckItemEntries ();

    如果要在hbm配置文件中生成一對多關(guān)系描述,則需修改freemarker模板文件

    文件路徑:com/liferay/portal/tool/servicebuilder/dependencies/hbm_xml.flt

    (如果對其他生成文件內(nèi)容做調(diào)整,也可修改其他對應(yīng)的模板文件)

    修改為如下內(nèi)容(也可直接copy

    <#list entities as entity>

        <#if entity.hasColumns()>

           <class name="${packagePath}.model.impl.${entity.name}Impl" table="${entity.table}">

               <cache usage="read-write" />

               <#if entity.hasCompoundPK()>

                  <composite-id name="primaryKey" class="${packagePath}.service.persistence.${entity.name}PK">

                      <#assign pkList = entity.getPKList()>

                      <#list pkList as column>

                         <key-property name="${column.name}"

                         <#if column.name != column.DBName>

                             column="${column.DBName}"

                         </#if>

                         />

                      </#list>

                  </composite-id>

               <#else>

                  <#assign column = entity.getPKList()?first>

                  <id name="${column.name}"

                      <#if column.name != column.DBName>

                         column="${column.DBName}"

                      </#if>

                      type="<#if !entity.hasPrimitivePK()>java.lang.</#if>${column.type}">

                      <#if column.idType??>

                         <#assign class = serviceBuilder.getGeneratorClass("${column.idType}")>

                         <#if class == "class">

                             <#assign class = column.IdParam>

                         </#if>

                      <#else>

                         <#assign class = "assigned">

                      </#if>

                      <generator class="${class}"

                      <#if class == "sequence">

                             <param name="sequence">${column.IdParam}</param>

                         </generator>

                      <#else>

                         />

                      </#if>

                  </id>

               </#if>

               <#list entity.columnList as column>

                  <#if column.EJBName??>

                      <#assign ejbName = true>

                  <#else>

                      <#assign ejbName = false>

                  </#if>

                  <#if !column.isPrimary() && !column.isCollection() && !ejbName>

                      <property name="${column.name}"

                      <#if column.name != column.DBName>

                         column="${column.DBName}"

                      </#if>

                      <#if column.isPrimitiveType() || column.type == "String">

                          type="com.liferay.util.dao.hibernate.${serviceBuilder.getPrimitiveObj("${column.type}")}Type"

                      </#if>

                      />

                  </#if>

                  <#if !column.isPrimary() && column.isCollection()>

                          

                      <#if column.isMappingOneToMany()>

                             <set name="${column.name}" lazy="true">

                             <key column="${column.getMappingKey()}"/>

                             <one-to-many class="${packagePath}.service.persistence.${column.EJBName}" />

                             </set>

                        </#if>

                       

                  </#if>

               </#list>

           </class>

        </#if>

    </#list>

    posted on 2008-12-18 08:39 禮物 閱讀(838) 評論(1)  編輯  收藏 所屬分類: Liferay

    評論

    # re: 在liferay中生成one to many 關(guān)系說明 2009-09-09 10:01 買禮物
    深奧呀~~  回復  更多評論
      

    主站蜘蛛池模板: 亚洲av中文无码乱人伦在线播放 | 综合偷自拍亚洲乱中文字幕| 亚洲成人免费在线| 亚洲国产精品一区二区成人片国内 | 水蜜桃视频在线观看免费| 午夜a级成人免费毛片| 亚洲天然素人无码专区| 天天看片天天爽_免费播放| 亚洲无码一区二区三区| 免费v片在线观看品善网| 成人午夜影视全部免费看| 国产成人精品久久亚洲| 最近免费中文字幕中文高清| 亚洲国产精品成人精品无码区 | 亚洲免费闲人蜜桃| 亚洲乱码一二三四五六区| 毛片a级毛片免费播放100| 国产精品亚洲片在线va| 日韩成人免费aa在线看| 黄色网址大全免费| 亚洲熟妇丰满多毛XXXX| 99re6在线精品视频免费播放 | 久久久久亚洲精品天堂| 男男AV纯肉无码免费播放无码| 亚洲第一成年网站视频| 亚洲AV无码之日韩精品| 可以免费观看的国产视频| 久久久久亚洲精品日久生情 | 美女被cao免费看在线看网站| 亚洲码和欧洲码一码二码三码| gogo全球高清大胆亚洲| 久操视频免费观看| 99亚偷拍自图区亚洲| 亚洲成a人片在线观看国产| 高清永久免费观看 | 国产成人高清亚洲一区久久 | 国产精品亚洲A∨天堂不卡| 久久国内免费视频| 国产福利在线观看永久免费| 亚洲色成人网一二三区| 男人的天堂亚洲一区二区三区 |