`
gym_1119
  • 浏览: 53102 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

在liferay中生成one to many 关系说明

阅读更多
?

liferay中生成one to many 关系说明

1:在service.xml中配置

For example

<column< p="">

?????? name="shoppingItemPrices"

?????? type="Collection"

?????? entity="ShoppingItemPrice"

?????? mapping-key="itemId"

/>

说明: entitymapping-key属性被指定将建立一个一对多的关系。

2:运行ant build

?????? 生成相关文件

3:在生成的实体实现类中,如ShoppingItemImp.java,新增getShoppingItemPrice()方法

?????? For example

?????? public List getItemPrices()

?????? throws PortalException, SystemException {

/*此处return2种写法

第一种是要求在关系实体中定义根据关联实体id进行查询的方法,如:

*/

return ShoppingItemPriceLocalServiceUtil.getItemPrices(getItemId());

/*

第二种是通过业务层代理类获的实体的持久类实例进行操作

*/

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

??? }

4:再次运行 ant build

如此便可在使用实体的时候直接获取关联对象实体

如:

List list = ActiveEntry.getCheckItemEntries ();

如果要在hbm配置文件中生成一对多关系描述,则需修改freemarker模板文件

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

(如果对其他生成文件内容做调整,也可修改其他对应的模板文件)

修改为如下内容(也可直接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}" <="" span="">

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

???????????????????????? column="${column.DBName}"

???????????????????? <!---->

???????????????????? />

????????????????? <!---->

????????????? </composite-id>

?????????? <#else>

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

????????????? <id name="${column.name}" <="" span="">

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

???????????????????? column="${column.DBName}"

????????????????? <!---->

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

????????????????? <#if column.idType??>

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

???????????????????? <#if class == "class">

???????????????????????? <#assign class = column.IdParam>

???????????????????? <!---->

????????????????? <#else>

???????????????????? <#assign class = "assigned">

????????????????? <!---->

????????????????? <generator class="${class}" <="" span="">

????????????????? <#if class == "sequence">

???????????????????????? ${column.IdParam}

???????????????????? </generator>

????????????????? <#else>

???????????????????? />

????????????????? <!---->

????????????? </id>

?????????? <!---->

?????????? <#list entity.columnList as column>

????????????? <#if column.EJBName??>

????????????????? <#assign ejbName = true>

????????????? <#else>

????????????????? <#assign ejbName = false>

????????????? <!---->

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

????????????????? <property name="${column.name}" <="" span="">

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

???????????????????? column="${column.DBName}"

????????????????? <!---->

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

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

????????????????? <!---->

????????????????? />

????????????? <!---->

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

????????????????? ????

????????????????? <#if column.isMappingOneToMany()>

???????????????? ????????

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

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

????????????????????????

?????? ?????????????<!---->

???????????????????

????????????? <!---->

?????????? <!---->

?????? </class>

??? <!---->

<!---->



礼物 2008-12-18 08:39 发表评论
分享到:
评论

相关推荐

    liferay代码生成器

    Liferay代码生成器是一款专为Liferay门户平台设计的开发工具,它旨在简化开发者在创建、维护和扩展Liferay应用时的工作流程。Liferay是一个开源的企业级内容管理和数字体验平台,广泛用于构建企业网站、社交网络和...

    liferay development 中文

    在Liferay开发中,以下几个核心知识点是至关重要的: 1. **Liferay架构**:理解Liferay的基础架构是开发的起点。它基于Java EE(Enterprise Edition)标准,包括Servlet容器、JSP、JSF、Portlet、Service Builder等...

    liferay.properties中的几处说明

    在Liferay Portal中,`liferay.properties`是一个关键的配置文件,它定义了系统的各种行为和设置。在本文中,我们将深入探讨这个文件中与页面可见性、我的位置portlet(My Places Portlet)以及用户协议展示相关的...

    在liferay中整合GWT,附例子

    在Liferay中整合GWT(Google Web Toolkit)是一项常见的任务,尤其对于开发复杂的企业级Web应用来说,这种集成可以利用GWT的强大力量来创建高性能的用户界面,同时利用Liferay的门户功能和社区特性。这篇博文提供了...

    liferay 权限文件说明

    ### Liferay权限文件说明 #### 一、概述 在Liferay平台中,权限管理是非常重要的一个环节,它确保了系统的安全性和数据的访问控制。本文档主要介绍的是`permissions.xml`文件及其相关配置,这对于理解如何在...

    liferay的开发文档

    此外,文档还涵盖了portlet与Liferay服务的集成,如ServiceBuilder,用于自动生成服务层代码,以及如何利用Liferay的工作流系统实现业务流程自动化。 文档二:《Liferay Portlet Development》 此文档专注于portlet...

    liferay 超级学习文档

    本超学习文档将深入探讨Liferay的核心特性、开发环境、Java技术的应用以及Hibernate在Liferay中的整合。 一、Liferay 框架 Liferay 框架基于Java EE(Enterprise Edition)标准,它提供了丰富的API和工具,允许...

    Liferay数据库表结构说明文档

    【Liferay数据库表结构说明文档】 Liferay是一个开源的企业级门户平台,它的核心功能之一是管理用户、组织、权限和内容。为了实现这些功能,Liferay维护着一系列的数据库表来存储和管理这些数据。本文档主要关注的...

    Liferay 6 入门教程

    Liferay 6还支持Spring框架,"plugins开发指南17-liferay中spring开发(1).pdf"和"plugins开发指南18-liferay中spring开发(2).pdf"两部分深入探讨了如何在Liferay环境中利用Spring进行服务和组件的管理。...

    liferay如何在eclipse中配置开发和debug环境

    为了在Eclipse环境中高效地开发和调试Liferay应用,我们需要进行一系列的配置步骤。以下将详细介绍如何在Eclipse中设置Liferay的开发和Debug环境。 1. **安装必要的软件和插件** - 首先,确保你已经安装了最新版本...

    Liferay Portal Liferay IDE

    Liferay Portal Liferay IDE

    Liferay Portal 数据库介绍

    在Liferay Portal 中,可以通过不同的portlet来修改页面的布局和Page Settings 等。例如: * 对社区的页面进行修改:选择【Communities】portlet,选择某个社区,点击【Actions】,选择【Configure Pages】,即可...

    liferay 内置在jsp中的对象

    ### Liferay内置在JSP中的对象详解 Liferay是一款基于Java的企业级内容管理系统(Content Management System, CMS)与门户系统(Portal)平台,广泛应用于企业内外部网站、社区、应用程序和服务等场景。为了方便开发者...

    liferay使用说明--管理

    在Liferay中,用户是系统的基本操作主体。用户管理主要包括: 1. **改变用户所属的组织地点**:用户可以在不同的组织和地点之间切换。这通过编辑用户的资料实现,具体步骤为:进入用户列表,选择目标用户,点击编辑...

    liferay 6.0 开发指南

    在《Liferay 6.0 开发指南》中,首先介绍了Liferay 6.0的核心技术及其开发策略。Liferay是一款强大的开源门户平台,支持企业级应用的构建与部署。该版本(6.0)在社区版的基础上提供了更多的功能和改进,特别是在...

    liferay详细讲解 liferay项目完全讲解

    在这个“liferay详细讲解 liferay项目完全讲解”的资料包中,我们可以期待深入了解到关于Liferay的核心概念、开发实践以及与其相关的技术。 首先,我们看到一个名为“JBPM数据库表说明.doc”的文件,这暗示了...

    liferay跨组件间通信实例

    在Liferay中,跨组件通信是一项关键的技术,它允许不同模块之间进行数据交换和功能协作。Liferay作为一个开源的企业级门户平台,提供了多种方式来实现组件间的通信,以支持复杂的应用场景。本实例将深入探讨如何在...

    liferay中文资源

    对于熟悉或正在学习Liferay的用户来说,这些中文资源将提供极大的帮助,尤其是对于那些在英语环境中遇到困难的开发者。 描述中的博文链接指向了ITEYE博客上的一篇文章,作者是Jyao。虽然没有具体的博文内容,我们...

Global site tag (gtag.js) - Google Analytics