session.createEntity() liefert entity mit fsId null
Author: kannengi
Publication Date: 3/3/2015 14:03
Hallo Community,
ich versuche, mit der access API ein Modul zu erstellen, das ein Excel-Sheet einliest, daraus eine Liste von Objekten instanziiert und dann in einer Schleife diese Objekte in eine Tabelle einer FirstSpirit Datenquelle schreibt.
Mein Problem ist, dass unregelmäßig, etwa nach 4 - 10 Iterationen, die von der Methode session.createEntity() erzeugte Entity keine fsId hat.
Dies führt dann dazu, dass die Werte in den FormData Feldern nicht gespeichert werden können. Hier der vereinfachte Code:
Project project = myProject;
Language lang = project.getMasterLanguage();
ContentStoreRoot contentStore = (ContentStoreRoot) project.getUserService().getStore(Store.Type.CONTENTSTORE, true, false);
Content2 table = contentStore.getContent2ByName("TABLE_NAME");
Session session = table.getSchema().getSession();
List myObjectListToSave = meineListeVonImportiertenObjekten;
for (Object myObjectToSave : myObjectListToSave) {
Entity entity = session.createEntity(table.getEntityType().getName());
session.commit();
Long fsId = (Long) entity.get("fs_id"); // ist manachmal null!!!!!
table.lock(entity);
Dataset dataset = table.getDataset(entity);
FormData formData = dataset.getFormData();
FormField formField1 = formData.get(lang, "field1");
formField.set(myObjecToSave.getField1());
// etc. mit anderen Feldern
dataset.setFormData(formData); // => Exception "The entity is invalid" wenn fsId vorher null war
dataset.save();
table.unlock(entity);
table.setLock(true);
table.save();
table.setLock(false);
entity.getSession().commit();
}
FirstSpirit 5.1.311.65223
Woran könnte es liegen?
Für einen Tip wär ich sehr dankbar!
Danke und Gruß,
Benny Kannengießer
// re-lounge
Tags: access-api, entity
Vous devez vous connecter pour laisser un commentaire.
Commentaires
0 commentaire