Fremdschlüssel-Verknüpfung (1:n) per API
Author: ACordes
Publication Date: 4/11/2012 14:06
Hallo Community,
ich habe zwei Datenbank-Schemata, die per Fremdschlüssel (1:n) verknüpft sind (s. Anhang). Nun versuche ich, per API "news", sowie die dazugehörigen "partners" zu erzeugen und zu verknüpfen.
Das erzeugen der "news" sowie "partners" funktioniert soweit, aber leider kommt die Verknüpfung nicht zustande (im News-Formular bleibt das CONTENTLIST-Feld leer).
Dies ist der entsprechende Code-Schnipsel:
GomEditorProvider prov = formData.getForm();
GomContentList partnersElement = (GomContentList) prov.findEditor("cs_partnerlist");
ContentListEditorValue cLev = (ContentListEditorValue) partnersElement.getDefaultValue();
List<Entity> partnerList = cLev.get(lang);
for(int i = 0; i < item.getPartnerIds().size(); i++) {
String partnerId = item.getPartnerIds().get(i).toString();
Entity partnerEntity = session.createEntity(csPartners.getEntityType().getName());
partnerEntity.setValue("partner_id", partnerId);
partnerList.add(partnerEntity);
}
cLev.set(lang, partnerList);
dataset.setFormData(formData);
Kann mir jemand verraten, was ich da vergessen habe?
Vielen Dank!
Tags: api, cms_input_contentlist, datasources
-
Author: Peter_Jodeleit - 4/12/2012 11:13
Hatte ich vorher nicht gesehen, weil ich mich auf das "date" Problem fixiert hatte.. Bei dem Code mit der ContentList wird der Default-Wert geändert, das ist ja nicht das gewünschte.
Pseudo-Code, der funktionieren sollte:
FormField<List<Entity>> field = formData.get(lang, "cs_partenerlist");
List<Entity> partnerList = field.get()
for(int i = 0; i < item.getPartnerIds().size(); i++) {
Entity partnerEntity = ...;
partnerList.add(partnerEntity);
}
field.set(partnerList);0
Vous devez vous connecter pour laisser un commentaire.
Commentaires
1 commentaire