`

ATG10 Transient 属性

阅读更多

在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属性。

 

 

 

 

 

分享到:
评论

相关推荐

    ATG10 Help Documents

    4. 版权声明中的日期和版本信息:文档中提到了特定的日期“12/21/10”和版本号“v1”,这些信息对于追踪软件文档的历史版本和更新非常有用。在实际工作中,IT人员通常需要根据文档的日期和版本来确定其适用性和准确...

    ATG学习资料 中文

    10. **ATG Architecture**:详细介绍了 ATG 的整体架构设计,包括与 J2EE 架构的关系以及使用的开源技术栈(如 Spring、Hibernate 等)。 11. **Type1 MVC**:基于 Struts 实现的模型视图控制器模式,是 ATG 架构中...

    ATG - Repository Guide

    根据提供的文件信息,我们可以深入探讨ATG电子商务平台中的核心模型与仓库概念,这些知识点对于理解ATG系统的架构和操作方式至关重要。 ### ATG电子商务平台概述 ATG(Art Technology Group)电子商务平台是一款由...

    ATG介绍(中文)

    ### ATG介绍(中文) #### 一、B2B与B2C ATG系统支持B2B(Business to Business,企业对企业)和B2C(Business to Consumer,企业对消费者)两种电子商务模式。在B2B模式下,ATG为批发商、分销商等提供专业的交易...

    ATG - Commerce Guide

    每个SKU都是唯一的,并且具有独立的价格、库存等属性。 #### 三、购买与履行服务 除了产品目录管理之外,文档还提到了购买与履行服务,这是电商平台不可或缺的部分。这部分涉及的内容主要包括: - **购物车管理**...

    ATG Merchandise 功能详解 - 好

    标题与描述均提到了“ATG Merchandise 功能详解”,这指向了Oracle ATG Web Commerce平台中的Merchandising功能模块。此模块是为电子商务网站提供强大管理能力的关键组件,旨在提升客户体验、增加业务敏捷性、降低...

    ATG教程.doc

    ATG教程.doc ATG教程.doc ATG教程.doc ATG教程.doc

    ATG - Program Guide

    ### ATG电子商务编程指南核心知识点解析 #### 一、引言与版权说明 《ATG - Program Guide》作为ATG电子商务平台的编程指南,旨在为开发者提供深入理解及操作ATG电子商务系统的全面指导。该文档版本为10.0.1,由Art...

    ATG Linux installation

    在本文中,我们将深入探讨如何在Linux环境下安装ATG 11.1版本。ATG(Application Technology Generator)是Oracle公司的一个电子商务平台,用于构建高度个性化的在线购物体验。以下是一些关键步骤和配置要点: 首先...

    ENRAF 854ATG1伺服液位计中文资料.DOC

    ENRAF 854ATG1伺服液位计中文资料 ENRAF 854ATG1伺服液位计是一款高级的液位计,用于测量液体的高度和密度。该设备具有高精度和高可靠性,广泛应用于石油、化工、能源、食品等行业。 液位测量的原理 液位测量是...

    ATG开发学习

    ATG开发学习

    ATG10.2 PDFATG10.2

    10. **开发工具和框架**:提供了强大的开发工具集,包括Dynamo IDE、Ant任务等,便于开发者快速构建和部署应用程序。 综上所述,ATG 10.2 是一个综合性的电子商务解决方案,通过PDF技术和其“Platform.1002”组件,...

Global site tag (gtag.js) - Google Analytics