我在hyperledger作曲家工作。在模型cto我定义 - 资产包含疫苗清单的儿童。此资产由以下内容定义:
@Bean
public DataSource getJndiDataSource() {
try {
JndiTemplate jndiTemplate = new JndiTemplate();
DataSource ds = (DataSource) jndiTemplate.lookup("java:comp/env/"+JNDI_DATASOURCE);
return new DelegatingDataSource(ds);
} catch(NamingException e){
LOG.error("Could not find JNDI data source (java:comp/env/):"+JNDI_DATASOURCE, e);
return null;
}
}
sudo apt-get update && sudo apt-get -y upgrade
sudo apt-get install python-pip
要在此列表中创建/添加疫苗,我使用交易"接种疫苗"在模型cto上定义如下:
asset Child identified by childId {
o String childId
o String name
o String surname
o DateTime dateOfBirth
o Vaccin[] vaccins optional
--> Parent hasparent
--> Doctor hasdoctor
}
就像在logic.js上一样
asset defVaccin identified by vaccinId {
o String vaccinId
o String diseases
o Integer timeFirst
o Integer timeSecond optional
o Integer timeThird optional
o Integer timeFourth optional
o Integer timeFifth optional
}
这很好,我的所有疫苗都在我的清单中。但是,如果我改变我的孩子或我的疫苗(只是做一个改变孩子的名字的例子),我之后有一个空列表。
有人知道为什么我的信息" disapear"从我的名单?我怎么能改变这个?
答案 0 :(得分:0)
参见此处的示例 - > https://github.com/hyperledger/composer-sample-networks/blob/master/packages/carauction-network/lib/logic.js#L89
尝试
// add this vaccine to the list of child's vaccines array of concepts
vaccinate.inchild.vaccins.push(vaccin);
而不是
// add this vaccine at the list of child's vaccines
vaccinate.inchild.addArrayValue("vaccins", vaccin);