Ich habe eine 1:n Beziehung (Aggregation) zwischen einem Produkt (Tabelle product) und einer Textliste Bulletpoints (Tabelle bulletpoints) und möchte den Text der bulletpoint erneuern. Hierzu ein Auszug aus dem Code:
...
Dataset dataSet = table.getDataset(productEntity);
FormData formData = dataSet.getFormData();
FormField<FormDataList> shopBulletList = (FormField<FormDataList>) formData.get(language,"shopBullets");
final FormDataList formDataList = shopBulletList.get();
for (IdProvidingFormData idProvidingFormData : formDataList) {
System.out.println("Vorher: " + idProvidingFormData.get(language, BulletPoints.tt_text.name()).get());
FormField<?> field = formData.get(language, BulletPoints.tt_text.name());
field.set("testZeugs");
System.out.println("Nachher: " + idProvidingFormData.get(language, BulletPoints.tt_text.name()).get());
}
dataSet.setFormData(formData);
dataSet.save();
table.save();
table.release(entity);
session.commit();
Der folgende Output wird generiert:
Output
Vorher: null
Nachher: testZeugs
Template für Product:
<CMS_MODULE>
...
<FS_LIST name="tt_shopBullets">
<DATASOURCE type="database" useLanguages="no">
<ACTIONS>
<ACTION name="EDIT"/>
<ACTION name="ADD"/>
<ACTION name="REMOVE"/>
<ACTION name="DETACH"/>
<ACTION name="DOWN"/>
<ACTION name="UP"/>
</ACTIONS>
<COLUMNS>
<COLUMN show="no">#identifier</COLUMN>
</COLUMNS>
<LAYOUT>
<ADD component="overview" constraint="center"/>
<ADD component="toolbar" constraint="top"/>
<ADD component="tabbedview" constraint="hide"/>
</LAYOUT>
<TABLE>global.bulletpoints</TABLE>
</DATASOURCE>
<LANGINFOS>
<LANGINFO lang="*" label="Shop bulllets" description="Shop bulllets"/>
</LANGINFOS>
</FS_LIST>
...
</CMS_MODULE>
Bulletpoint template:
<CMS_MODULE>
<CMS_INPUT_TEXTAREA name="tt_text" useLanguages="yes">
<LANGINFOS>
<LANGINFO lang="*" label="Bulletpoint" description="Bulletpoint"/>
</LANGINFOS>
</CMS_INPUT_TEXTAREA>
</CMS_MODULE>
Das Problem ist das meine Änderungen nicht in der Datenbank ankommen. Hat jemand eine Idee was ich falsch mache. Die anderen Einträge in product (hier nicht weiter aufgeführt) werden gespeichert, die Referenz auf die bulletpoints werden wenn neue bulletpoint entitäten erzeugt werden ebenfalls gespeichert, aber die Texteinträge gehen verloren, bzw. können kein Update erfahren.