?
在liferay中生成one to many 关系说明
1:在service.xml中配置
For example:
<column< p="">
?????? name="shoppingItemPrices"
?????? type="Collection"
?????? entity="ShoppingItemPrice"
?????? mapping-key="itemId"
/>
说明: entity和mapping-key属性被指定将建立一个一对多的关系。
2:运行ant build
?????? 生成相关文件
3:在生成的实体实现类中,如ShoppingItemImp.java,新增getShoppingItemPrice()方法
?????? For example:
?????? public List getItemPrices()
?????? throws PortalException, SystemException {
/*此处return有2种写法
第一种是要求在关系实体中定义根据关联实体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>
??? <!---->
<!---->
分享到:
相关推荐
Liferay代码生成器是一款专为Liferay门户平台设计的开发工具,它旨在简化开发者在创建、维护和扩展Liferay应用时的工作流程。Liferay是一个开源的企业级内容管理和数字体验平台,广泛用于构建企业网站、社交网络和...
在Liferay开发中,以下几个核心知识点是至关重要的: 1. **Liferay架构**:理解Liferay的基础架构是开发的起点。它基于Java EE(Enterprise Edition)标准,包括Servlet容器、JSP、JSF、Portlet、Service Builder等...
在Liferay Portal中,`liferay.properties`是一个关键的配置文件,它定义了系统的各种行为和设置。在本文中,我们将深入探讨这个文件中与页面可见性、我的位置portlet(My Places Portlet)以及用户协议展示相关的...
在Liferay中整合GWT(Google Web Toolkit)是一项常见的任务,尤其对于开发复杂的企业级Web应用来说,这种集成可以利用GWT的强大力量来创建高性能的用户界面,同时利用Liferay的门户功能和社区特性。这篇博文提供了...
### Liferay权限文件说明 #### 一、概述 在Liferay平台中,权限管理是非常重要的一个环节,它确保了系统的安全性和数据的访问控制。本文档主要介绍的是`permissions.xml`文件及其相关配置,这对于理解如何在...
此外,文档还涵盖了portlet与Liferay服务的集成,如ServiceBuilder,用于自动生成服务层代码,以及如何利用Liferay的工作流系统实现业务流程自动化。 文档二:《Liferay Portlet Development》 此文档专注于portlet...
本超学习文档将深入探讨Liferay的核心特性、开发环境、Java技术的应用以及Hibernate在Liferay中的整合。 一、Liferay 框架 Liferay 框架基于Java EE(Enterprise Edition)标准,它提供了丰富的API和工具,允许...
【Liferay数据库表结构说明文档】 Liferay是一个开源的企业级门户平台,它的核心功能之一是管理用户、组织、权限和内容。为了实现这些功能,Liferay维护着一系列的数据库表来存储和管理这些数据。本文档主要关注的...
Liferay 6还支持Spring框架,"plugins开发指南17-liferay中spring开发(1).pdf"和"plugins开发指南18-liferay中spring开发(2).pdf"两部分深入探讨了如何在Liferay环境中利用Spring进行服务和组件的管理。...
为了在Eclipse环境中高效地开发和调试Liferay应用,我们需要进行一系列的配置步骤。以下将详细介绍如何在Eclipse中设置Liferay的开发和Debug环境。 1. **安装必要的软件和插件** - 首先,确保你已经安装了最新版本...
Liferay Portal Liferay IDE
在Liferay Portal 中,可以通过不同的portlet来修改页面的布局和Page Settings 等。例如: * 对社区的页面进行修改:选择【Communities】portlet,选择某个社区,点击【Actions】,选择【Configure Pages】,即可...
### Liferay内置在JSP中的对象详解 Liferay是一款基于Java的企业级内容管理系统(Content Management System, CMS)与门户系统(Portal)平台,广泛应用于企业内外部网站、社区、应用程序和服务等场景。为了方便开发者...
在Liferay中,用户是系统的基本操作主体。用户管理主要包括: 1. **改变用户所属的组织地点**:用户可以在不同的组织和地点之间切换。这通过编辑用户的资料实现,具体步骤为:进入用户列表,选择目标用户,点击编辑...
在《Liferay 6.0 开发指南》中,首先介绍了Liferay 6.0的核心技术及其开发策略。Liferay是一款强大的开源门户平台,支持企业级应用的构建与部署。该版本(6.0)在社区版的基础上提供了更多的功能和改进,特别是在...
在这个“liferay详细讲解 liferay项目完全讲解”的资料包中,我们可以期待深入了解到关于Liferay的核心概念、开发实践以及与其相关的技术。 首先,我们看到一个名为“JBPM数据库表说明.doc”的文件,这暗示了...
在Liferay中,跨组件通信是一项关键的技术,它允许不同模块之间进行数据交换和功能协作。Liferay作为一个开源的企业级门户平台,提供了多种方式来实现组件间的通信,以支持复杂的应用场景。本实例将深入探讨如何在...
对于熟悉或正在学习Liferay的用户来说,这些中文资源将提供极大的帮助,尤其是对于那些在英语环境中遇到困难的开发者。 描述中的博文链接指向了ITEYE博客上的一篇文章,作者是Jyao。虽然没有具体的博文内容,我们...