0

我正在尝试继承“contactInfo”项目并创建一个新的项目描述符。如下所示。

<item-descriptor name="testContactInfo" super-type="contactInfo">
    <table name="test_contact_info" type="auxiliary" id-column-name="contact_id" shared-table-sequence="1">
        <property name="fixedlinenumber" column-name="fixed_line_num" data-type="string"/>
    </table>
</item-descriptor>

启动服务器时出现以下错误。

14:19:52,856 ERROR [ProfileAdapterRepository] Error parsing template: atg.repository.RepositoryException: Your item-descriptor definition for testContactInfo has super-type contactInfo but no sub-type attribute.

我在这里做错了什么?我将定义保留在 userProfile.xml

4

2 回答 2

1

第一个问题:您是否真的希望创建 contactInfo 项目描述符的子类型 - 也就是说,您是否希望系统中有一些类型为 contactInfo 的项目和一些类型为 testContactInfo 的项目 - 或者您只是想添加现有contactInfo 项描述符的自定义属性?

如果您实际上是在尝试创建contactInfo 的子类型,那么您需要修改contactInfo 的描述符以告诉它如何区分contactInfo 类型的项目和testContactInfo 类型的项目。您需要向contactInfo 添加一个属性,例如contactType,并设置sub-type-property 属性

<item-descriptor name="contactInfo" sub-type-property="contactType" ...>
  ...
  <property name="contactType" data-type="enumerated">
    <option value="standard"/>
    <option value="test"/>
  </property>
  ...
</item-descriptor>

然后你可以子类型它

<item-descriptor name="testContactInfo" super-type="contactInfo" sub-type-value="test">
  ...
</item-descriptor>

但是,如果您只是想为其添加自定义属性,则可以很好地添加到现有定义中。您不需要子类型来扩展开箱即用的项目。例如

<item-descriptor name="contactInfo">
  <table name="test_contact_info" type="auxiliary" id-column-name="contact_id" shared-table-sequence="1">
    <property name="fixedlinenumber" column-name="fixed_line_num" data-type="string"/>
  </table>
</item-descriptor>

将导致一个名为 fixedlinenumber 的新属性添加到标准 contactInfo 项中。

于 2012-09-21T13:53:36.217 回答
0

项目描述符继承可以通过两种方式完成。你可以:-

  1. 为现有项目描述符添加新属性。在这里,您可以将许多属性添加到现有的项目描述符。这可以是开箱即用的,也可以是您的自定义存储库。

例如,您可以为contactInfo 项描述符设置一个employeeId 属性,该属性可用于所有contactInfo 项。

  1. 创建项目描述符的子类型。这通常用于具有特定项目描述符的独特属性。

例如,在您的contactInfo 类型中,您可以有一个“employeeContactInfo”,您希望在其中存储一个额外的员工ID,并且您可以有一个仅用于该类型的“employeeId”。

所以,这基本上取决于你的要求。你可以在这个网站上看到一些细节。很好的教程:-

http://learnoracleatg.blogspot.in/2014/11/art203-how-to-extend-out-of-box-non.htmlhttp://learnoracleatg.blogspot.in/2014/12/art204-how- to-add-new-item-descriptor.html

于 2014-12-08T13:34:10.000 回答