繁体   English   中英

如何在Oracle ATG中使用Java API存储库添加LIST项目?

[英]How to add a LIST item with Java API Repository in Oracle ATG?

我创建此存储库:

<gsa-template>

<item-descriptor name="indirizzo" >
    <table name="INDIRIZZO" type="primary" id-column-name="ID_INDIRIZZO">
        <property name="via" data-type="string" column-name="VIA" />
        <property name="civico" data-type="int" column-name="CIVICO" />
    </table>
</item-descriptor>


<item-descriptor name="utente" >
    <table name="UTENTE" type="primary" id-column-name="ID_UTENTE">
        <property name="nome" data-type="string" column-name="NOME" />
        <property name="cognome" data-type="string" column-name="COGNOME" />
        <property name="indirizzi" data-type="list" component-item-type="indirizzo" />
    </table>
</item-descriptor>

在Java类中,我想添加一个具有多个地址的新用户。 然后,我想使用Java API存储库。 我尝试了这个:

MutableRepositoryItem item_utente = getMutableRepository().createItem(
                UTENTE);
        MutableRepositoryItem item_indirizzo = getMutableRepository().createItem(
                INDIRIZZO);

        item_indirizzo.setPropertyValue(VIA, v1);
        item_indirizzo.setPropertyValue(CIVICO, civ1);
        getMutableRepository().addItem(item_indirizzo);
        item_indirizzo.setPropertyValue(VIA, v2);
        item_indirizzo.setPropertyValue(CIVICO, civ2);
        getMutableRepository().addItem(item_indirizzo);

        item_utente.setPropertyValue(NOME, n);
        item_utente.setPropertyValue(COGNOME, c);
        item_utente.setPropertyValue(INDIRIZZI, item_indirizzo);

        getMutableRepository().addItem(item_utente);

但是它不起作用,我建议使用,因为我没有创建实际的Java列表。 我想在数据库中插入一个具有2个或更多地址的用户。 有些不同的想法还是我要修正我的代码?

如果您的数据类型是列表,则可以使用xml添加项目,就像对原始数据类型(用逗号分隔值)进行的操作一样,如下所示:

<add-item item-descriptor="utente" id="test1">
    <set-property name="nome" value="testNome"/>
    <set-property name="cognome" value="testCognome"/>
    <set-property name="indirizzi" value="test2,test3,test4"/>
</add-tem>

请查看下面的页面以获取更多详细信息。

http://docs.oracle.com/cd/E24152_01/Platform.10-1/ATGRepositoryGuide/html/s1302setproperty01.html

创建存储库列表项。

List<RepositoryItem> item_indirizzo_List=new ArrayList<RepositoryItem>();

将项目添加到列表。 然后添加如下

item_utente.setPropertyValue(INDIRIZZI, item_indirizzo_List);

可能会对您有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM