Я работаю в Hyperledger Composer.На модели cto я определяю - актив Child, который содержит список вакцин.Этот актив определяется как:
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
}
- актив defVaccin, который содержит некоторые определения вакцин.Вакцина определяется следующим образом:
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
}
Для создания / добавления вакцин в этом списке я использую транзакцию «вакцинация», которая определяется следующим образом в модели cto:
transaction Vaccinate {
--> Child inchild
--> defVaccin aboutvaccin
o DateTime dateOfVaccin
}
И так на logic.js
function vaccinate(vaccinate) {
var factory = getFactory();
var vaccin = factory.newConcept('vaccinspace', 'Vaccin', vaccinate.aboutvaccin.vaccinId); // create vaccin concept
// define value of concept's properties
vaccin.vaccinId = vaccinate.aboutvaccin.vaccinId;
vaccin.dateOfVaccin = vaccinate.dateOfVaccin;
// add this vaccine at the list of child's vaccines
vaccinate.inchild.addArrayValue("vaccins", vaccin)
return getAssetRegistry('vaccinspace.Child')
.then (function (assetRegistry) {
return assetRegistry.update(vaccinate.inchild); // update the list of child's vaccines
});
}
Это отлично работает, у меня есть все мои вакцины в моем списке.Но если я модифицирую своего ребенка или мою вакцину (просто сделаю пут, чтобы изменить имя ребенка на пример), у меня появится пустой список после.
Кто-то знает, почему моя информация «исчезает» из моего списка?Как я могу изменить это?