首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >傲慢项目:自定义属性和属性之间的差异

傲慢项目:自定义属性和属性之间的差异
EN

Stack Overflow用户
提问于 2018-06-07 19:31:11
回答 2查看 3.8K关注 0票数 2

在“傲慢类型”的定义中,我很难理解这两个标签的含义:以及

详细地说,第一个包含子标记,第二个包含子标记。在“属性”标记中,还有一个带有内容的标记。

我所依据的示例代码是从“傲慢路线”中提取的,即:

代码语言:javascript
复制
<itemtype
    code="News"
    autocreate="false"
    generate="false">
    <custom-properties>
        <property name="catalogItemType"><value>java.lang.Boolean.TRUE</value></property>
        <property name="catalogVersionAttributeQualifier"><value>"catalogVersion"</value></property>
        <property name="uniqueKeyAttributeQualifier"><value>"id"</value></property>
    </custom-properties>
    <attributes>
        <attribute qualifier="id" type="java.lang.String">
            <modifiers initial="true" optional="false" write="true"/>
            <persistence type="property"/>
            </attribute>
        <attribute qualifier="catalogVersion" type="CatalogVersion">
            <modifiers initial="true" optional="false" write="true"/>
            <persistence type="property"/>
        </attribute>
    </attributes>
</itemtype>

总的来说,这两个标签和

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-08 06:28:42

代码语言:javascript
复制
<custom-properties>
    <property name="catalogItemType">
        <value>java.lang.Boolean.TRUE</value>
    </property>
    <property name="catalogVersionAttributeQualifier">
        <value>"catalogVersion"</value>
    </property>
    <property name="uniqueKeyAttributeQualifier">
        <value>"code"</value>
    </property>
</custom-properties>

这些<custom-properties>用于将ItemType定义为目录感知。比如产品类型。有关更多细节,您可以参考this post

<attribute>用于定义和配置表/项的列。

在SQL中,我可以说<custom-properties>用于表级配置(元数据),<attribute>用于定义和配置该表的列。

票数 3
EN

Stack Overflow用户

发布于 2018-06-08 06:37:27

项属性定义项的状态。它们实际上是作为平台构建和更新过程的结果创建的db表的列(动态属性除外)。

自定义属性是在类型系统定义中使用的特定定义属性,用于定义类型的某些属性。通常,如果您解释类型系统的元数据,您可以读取属性以实现所需的行为。它们可以在不同的层次上定义。

  1. 在项类型级别-自定义属性用于定义类型的属性。这是您在问题正文中发布的示例。问题中的自定义类型

代码语言:javascript
复制
<custom-properties>
        <property name="catalogItemType"><value>java.lang.Boolean.TRUE</value></property>
        <property name="catalogVersionAttributeQualifier"><value>"catalogVersion"</value></property>
        <property name="uniqueKeyAttributeQualifier"><value>"id"</value></property>
    </custom-properties>

这些属性是在类型级别上定义的--这些属性在类型级别提供目录感知。这些属性也可以通过getProperty( String propertyName ) methodThere在运行时检索这些项类型属性。

  1. 关系级别,请参阅下面的代码片段。

代码语言:javascript
复制
<relation code="User2Addresses" generate="true" localized="false" autocreate="true">
    <sourceElement type="User" cardinality="one" qualifier="owner">
        <modifiers read="true" write="true" search="true" optional="true" initial="false"/>
    </sourceElement>
    <targetElement type="Address" cardinality="many" qualifier="addresses">
        <modifiers read="true" write="true" search="true" optional="true" partof="true"/>
        <custom-properties>
            <property name="condition.query">
                <value>"{original} is null"</value>
            </property>
        </custom-properties>
    </targetElement>
</relation>

该属性包含一个字符串,该字符串稍后添加到为一对多或多对一关系生成的select查询的“where”部分。

  1. 通过定义ordering.attribute,可以指定在从数据库检索时将使用哪个属性来排序多个侧项。

代码语言:javascript
复制
<relation code="AbstractOrder2AbstractOrderEntry" localized="false" generate="true" autocreate="true">
			<sourceElement type="AbstractOrder" qualifier="order" cardinality="one">
				<modifiers read="true" write="true" search="true" optional="true" />
				<custom-properties>
					<property name="ordering.attribute">
						<value>"entryNumber"</value>
					</property>
				</custom-properties>
			</sourceElement>
			<targetElement type="AbstractOrderEntry" qualifier="entries" cardinality="many" collectiontype="list" ordered="false" >
				<modifiers read="true" write="true" search="true" optional="true" partof="true" />
			</targetElement>
		</relation>

  1. Backoffice自定义属性- Backoffice将允许显示任何类型的所有属性(开箱即用),但是有一些特殊(比如技术)属性,这些属性肯定不应该在UI中可见,或者至少应该在UI中进行读取(不管它们有什么访问权限)。对于那些非常罕见的情况,傲慢已经引入了两个自定义属性,我们在扫描类型系统时解释这些属性。

代码语言:javascript
复制
<property name="readOnlyForUI">
     <value>Boolean.TRUE</value>
 </property>
 <property name="hiddenForUI">
     <value>Boolean.TRUE</value>
 </property>

希望这能有所帮助!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50748907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档