如何在 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 class 中,我想添加一个具有多个地址的新用户。然后我想使用 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 个或更多地址的用户。 一些不同的想法还是我要修改我的代码?

创建存储库项目列表。

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

将项目添加到列表中。然后像下面这样添加

item_utente.setPropertyValue(INDIRIZZI, item_indirizzo_List);

也许这会对你有所帮助。

如果您的数据类型是列表,您可以使用 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