如何在 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
我创建了这个存储库:
<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