* 保持实体名称少于25个字符
这个限制主要是为了Oracle只支持30字符以内的数据库对象名称,再加上OFBiz会自动在单词之间加上"_",所以就得出了这么个限制.
* 关联的工作方式
它们定义于entitymodel.xml文件中的<entity>段,示例如下:
<relation type="one" fk-name="PROD_CTGRY_PARENT" title="PrimaryParent" rel-entity-name="ProductCategory">
<key-map field-name="primaryParentCategoryId" rel-field-name="productCategoryId"/>
</relation>
<relation type="many" title="PrimaryChild" rel-entity-name="ProductCategory">
<key-map field-name="productCategoryId" rel-field-name="primaryParentCategoryId"/>
</relation>
type这个属性标签定义关联类型: "one"表示一对一,"many"表示从此实体引出的一对多关系
fk-name的属性值是数据库外键名.为自己的外键命名是一个好的习惯,虽然如果你不设置此属性,OFiz也会自己建外建.
rel-entity-name的属性值指向关联的实体名称
title用来区分两个实体之间的多重关系
<key-map>节点定义关联中使用到的字段.field-name指向本实体内的引用字段,rel-field-name定义关联的实体字段,你可以通过多个字段组合关联
当你访问一个关联,你可以使用title+entityName作为参数调用.getRelated("")或.getRelatedOne("")方法.在关联为"many"时使用.getRelated("")是恰当的,因为它返回一个List,同样在关联为"one"时通过.getRelatedOne("")方法获得一个值.
* view-entities相关内容
view-entities的功能非常强大,它允许你可以创建一个join-like查询,即使你的数据库不支持join.
关于你数据库的join语法存放在entityengine.xml的datasource节点下的join-style属性中.
当你通过<view-link...>节点将两上实体连接起来时,记住:
1. 实体名称顺序是重要的
2. 默认的连接方式是inner join(即同样的值存在于两个实体类中),外连接需要使用rel-optional="true"
如果多个实体中拥有相同的字段名称,比如statusId,结果集中的statusId使用第一个实体中的该列,其它实体中的同名列将被丢弃.如果你想要同时获得这些列,你需要通过在其之前加入<alias-all>节点,一个方式是使用<alias ..>节点来为不同实体的同名字段起别名,示例:
<alias entity="EntityOne" name="entityOneStatusId" field="statusId"/>
<alias entity="EntityTwo" name="entityTwoStatusId" field="statusId"/>
另一种方法是在<alias-all>节点中使用<exclude field="">,如下:
<alias-all entity-alias="EN">
<exclude field="fieldNameToExclude1"/>
<exclude field="fieldNameToExclude2"/>
</alias-all>
这样也可以排除掉很多不打算使用到的信息,特别是在一个非常大的表中查询时.
如果你打算执行类似于以下的查询语句时:
SELECT count(visitId) FROM GROUP BY trackingCodeId WHERE fromDate > '2005-01-01'
需要包含字段visitId以及function="count" 标签,trackingCodeId需加上group-by="true"标签,fromDate需要加上group-by="false"标签
在你进行查询时,有一件非常重要的事情需要注意,比如说delegator.findByCondition方法,你必须指定检出的字段列表,并且你不能指定fromDate字段,否则你将得到一个错误.这就是为webtools不能够使用view-entities来查看的原因.
你可以查看applications/marketing/entitydef/entitymodel.xml的底部内容学习,及通过applications/marketing/webapp/marketing/WEB-INF/actions/reports学习beanshell脚本的调用.
未完待续>>
本文档译自ofbiz 4.0 cookbooks,本人翻译,欢迎转载,请注明出处.
分享到:
相关推荐
在Ofbiz中,实体引擎是核心组件之一,它负责处理数据模型,提供数据访问和管理功能。本篇文章将深入探讨Ofbiz实体引擎的设计理念、主要功能以及实际应用。 ### 一、Ofbiz实体引擎概述 Ofbiz实体引擎基于Java语言,...
OFBiz是一个非常著名的电子商务平台,是一个非常著名的开源项目,... OFBiz最主要的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具。包括实体引擎, 服务引擎, 消息引擎, 工作流引擎, 规则引擎等。
《OFBIZ开发指南》是一本专为开发者设计的详细教程,主要针对OFBIZ(Open For Business Project)这一开源企业应用平台。OFBIZ是一个基于Java的企业级应用框架,旨在提供一系列完整的业务功能,包括供应链管理、电子...
你可以通过解压并导入到开发环境中,跟随书中的步骤,实际操作一遍,这样理论与实践相结合,能更有效地掌握Ofbiz的开发技巧。 总的来说,《Ofbiz快速开发入门详解》是一本实用的教程,适合对Java Web开发感兴趣,...
OFBIZ,全称为Open For Business Project,是一个基于Java的企业级应用框架,主要用于构建电子商务、供应链管理、CRM等复杂业务系统。本文档主要针对OFBIZ 10.04版本,通过讲解Region例子程序,引导初学者了解和掌握...
OFBiz 开发手册 OFBiz 是一个基于 Java 的开源电商平台,旨在提供一个灵活、可扩展、可配置的电商...OFBiz 开发手册旨在为开发者提供一个系统的 OFBiz 开发指南,从环境搭建到应用开发,涵盖了 OFBiz 开发的各个方面。
2. **实体引擎**:用于管理数据库中的对象,提供了一种声明式的方式来定义实体和它们之间的关系,类似于ORM(对象关系映射)。 3. **工作流引擎**:处理业务流程的自动化,如审批流程、订单处理等,支持自定义工作...
- **Ofbiz实体引擎(九) 多租户**:实体引擎支持多租户架构,允许在一个OFBiz实例上管理多个独立的业务环境,每个环境有自己的数据和配置。 - **Ofbiz权限判断语法**和**权限设计详解**:OFBiz具有精细的权限管理...
OFBiz API中文版.chm文件是一个典型的Windows帮助文档,其中详细列举了OFBiz的所有服务、组件、实体以及相关的API接口。文档通常包含以下部分: - **服务**:描述了OFBiz中的服务接口,如订单处理、库存管理等。 ...
OFBiz基于服务组件架构(Service Component Architecture,简称SCA),这是一种模块化的设计,允许开发者独立地开发和部署各个业务服务。每个服务都封装了特定的业务逻辑,通过接口与系统其他部分进行通信。SCA使得...
在《OFBiz开发教程》中,我们将深入探讨如何使用OFBiz框架进行开发。OFBiz(Open For Business Project)是一个开源的企业级应用框架,用于构建和管理电子商务、供应链、CRM等业务系统。本教程旨在引导初学者逐步...
开发者需要定义一个服务(service),通过这个服务调用实体引擎的API来创建新的实体实例。例如,创建一个新的CMS内容可能涉及创建`CmsRegister`实体,包括标题、内容、作者等属性。这可以通过编写XML服务定义文件和...
《Ofbiz开发规范》是针对Ofbiz框架的开发人员制定的一套编码和设计准则,旨在提升软件质量和团队协作效率。规范主要包括代码风格、代码长度、行宽、对齐、注释等多个方面。 1. **代码风格规范**: - **缩进**:...
同时,安装一个集成开发环境(IDE),如Eclipse或IntelliJ IDEA,它们都有对应的Ofbiz插件,能提供更好的开发体验。 三、构建与运行Ofbiz 1. 配置环境:在Ofbiz根目录下的build.properties文件中,根据你的系统...
OFBiz使用Eclipse的EMF工具生成数据模型,这些模型定义了实体(Entities)、实体实体关系(Entity-Entity Relationships)以及业务逻辑。开发者需要熟悉如何创建和管理这些模型,以及如何在数据库中映射它们。 ...
OFBiz(Apache Open For Business)是一个开源框架,设计为帮助构建企业资源计划(ERP)软件。ERP是任何致力于整合所有业务处理及后台数据到一个系统的一个统称。实际上,OFBiz框架不仅帮助构建自定义软件,还打包有许多...