我试图继承“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中保留了定义
2 回答
第一个问题:你真的想要创建一个contactInfo项描述符的子类型 - 也就是说,你期望你的系统中有一些类型为contactInfo的项目和一些类型为testContactInfo的项目 - 或者你只是想添加现有contactInfo项描述符的自定义属性?
如果您实际上是在尝试创建contactInfo的子类型,那么您需要修改contactInfo的描述符,以告诉它如何区分contactInfo类型的项和testContactInfo类型的项 . 您需要向contactInfo添加一个属性,比如contactType,并设置sub-type-property属性
然后你可以对它进行子类型化
但是,如果您只是想为其添加自定义属性,则可以很好地添加到现有定义中 . 您不需要子类型来扩展开箱即用的项目 . 例如
将导致一个名为fixedlinenumber的新属性添加到标准的contactInfo项中 .
项目描述符继承可以通过两种方式完成 . 您可以:-
例如,您可以将employeeId属性设置为contactInfo项描述符,该属性可用于所有contactInfo项 .
例如,在您的contactInfo类型中,您可以拥有一个“employeeContactInfo”,其中您要存储额外的员工ID,并且您只能为此类型设置“employeeId” .
所以,它基本上取决于您的要求 . 你可以在这个网站上看到一些细节..很好的教程: -
http://learnoracleatg.blogspot.in/2014/11/art203-how-to-extend-out-of-box-non.html和http://learnoracleatg.blogspot.in/2014/12/art204-how-to-add-new-item-descriptor.html