在ATG中 ,经常需要使用一些临时属性,这些属性是不需要持久化到数据库的。这些属性就是Transient属性。
哪些情况会使用到transient属性呢?
- 用户自定义属性
- 衍生属性
- 一般的临时属性,如用户是否是登陆等
首先在Repository 的 定义文件中 需要创建一个和表平级的property tag.
指定属性名,数据类型和属性的类型以及是否可写或者可查询。一般的话是可写但是不可查询。
有些时候时都不允许。看情况而定:
<property name="enterpriseSiteGroupId" data-type="string" property-type="com.ngp.commerce.repository.NGPRetrieveProfileSiteGroupIdPropertyDescriptor" writable="false" queryable="false"> <attribute name="uiwritable" value="false"/> </property>
其中<attribute> tag可以制定一些需要用到的属性。通常以键值对(name/value)形式出现。
然后需要写一个Java Class 去处理临时属性相关的东西,包括临时属性的取值方式。
/** * Retrieve Profile enterpriseSiteGroupId * @author: Nicky Zhang * @version: Sep 4, 2013 */ public class NGPRetrieveProfileSiteGroupIdPropertyDescriptor extends RepositoryPropertyDescriptor { private static final String REALM_ID = "realmId"; @Override public Object getPropertyValue(RepositoryItemImpl pItem, Object pValue) { if (pValue != null) { return pValue; } String realmId = (String) pItem.getPropertyValue(REALM_ID); if (StringUtils.isBlank(realmId)) { return null; } RepositoryItem item = NGPSiteGroupManager.getInstance().getEnterpriseSiteGroupIdByRealmId(realmId); if (item == null) { return null; } String enterpriseSiteGroupId = item.getRepositoryId(); return (StringUtils.isBlank(enterpriseSiteGroupId)) ? realmId : enterpriseSiteGroupId; } }
然后在使用的时候,直接用property 相关的Item 去处理。返回的值就是该属性的值。
有是有我们还需要使用一些衍生属性:
比如针对一个item-descriptor 有个属性 需要判断当前员工的消费额度,如果员工的消费额度为空就使用部门的消费额度。
<property name="spendingLimit" writable="false"> <derivation> <expression>empSpendingLimit</expression> <expression>department.spendingLimit</expression> </derivation> </property>
expression 就是代表的就是相关的属性。这些属性是从相同item下其余property属性。
相关推荐
4. 版权声明中的日期和版本信息:文档中提到了特定的日期“12/21/10”和版本号“v1”,这些信息对于追踪软件文档的历史版本和更新非常有用。在实际工作中,IT人员通常需要根据文档的日期和版本来确定其适用性和准确...
10. **ATG Architecture**:详细介绍了 ATG 的整体架构设计,包括与 J2EE 架构的关系以及使用的开源技术栈(如 Spring、Hibernate 等)。 11. **Type1 MVC**:基于 Struts 实现的模型视图控制器模式,是 ATG 架构中...
根据提供的文件信息,我们可以深入探讨ATG电子商务平台中的核心模型与仓库概念,这些知识点对于理解ATG系统的架构和操作方式至关重要。 ### ATG电子商务平台概述 ATG(Art Technology Group)电子商务平台是一款由...
### ATG介绍(中文) #### 一、B2B与B2C ATG系统支持B2B(Business to Business,企业对企业)和B2C(Business to Consumer,企业对消费者)两种电子商务模式。在B2B模式下,ATG为批发商、分销商等提供专业的交易...
每个SKU都是唯一的,并且具有独立的价格、库存等属性。 #### 三、购买与履行服务 除了产品目录管理之外,文档还提到了购买与履行服务,这是电商平台不可或缺的部分。这部分涉及的内容主要包括: - **购物车管理**...
标题与描述均提到了“ATG Merchandise 功能详解”,这指向了Oracle ATG Web Commerce平台中的Merchandising功能模块。此模块是为电子商务网站提供强大管理能力的关键组件,旨在提升客户体验、增加业务敏捷性、降低...
ATG教程.doc ATG教程.doc ATG教程.doc ATG教程.doc
### ATG电子商务编程指南核心知识点解析 #### 一、引言与版权说明 《ATG - Program Guide》作为ATG电子商务平台的编程指南,旨在为开发者提供深入理解及操作ATG电子商务系统的全面指导。该文档版本为10.0.1,由Art...
在本文中,我们将深入探讨如何在Linux环境下安装ATG 11.1版本。ATG(Application Technology Generator)是Oracle公司的一个电子商务平台,用于构建高度个性化的在线购物体验。以下是一些关键步骤和配置要点: 首先...
ENRAF 854ATG1伺服液位计中文资料 ENRAF 854ATG1伺服液位计是一款高级的液位计,用于测量液体的高度和密度。该设备具有高精度和高可靠性,广泛应用于石油、化工、能源、食品等行业。 液位测量的原理 液位测量是...
ATG开发学习
10. **开发工具和框架**:提供了强大的开发工具集,包括Dynamo IDE、Ant任务等,便于开发者快速构建和部署应用程序。 综上所述,ATG 10.2 是一个综合性的电子商务解决方案,通过PDF技术和其“Platform.1002”组件,...