Beanshell: freigegebene Version eines Datensatzes (Entity) holen
Author: JanScholz
Publication Date: 8/23/2011 14:05
Hallo Community!
Gibt es einen performanten Weg sich die letzte freigegebene Version eines Datensatzes aus einer Datenquelle zu holen?
Mein Weg, durch die History des de.espirit.firstspirit.access.store.contentstore.Dataset zu iterieren, das jeweilige de.espirit.or.schema.Entity zu holen, und zu prüfen ob es freigegeben ist, ist, wie mir scheint, nicht sehr performant, oder täusche ich mich da?
// de.espirit.firstspirit.store.access.contentstore.Content2Impl
e = context.getStoreElement();
// de.espirit.or.impl.EntityImpl
row = context.getSelectedRow();
releasedEntity = null;
for (revision : e.getDataset(row).getHistory()) {
entity = e.getInRevision(revision).getEntity(row.getValue("fs_id"));
if (entity.isReleased()) {
releasedEntity = entity;
break;
}
}
print(releasedEntity.isReleased());
Danke!
Grüße Jan
-
Author: gockel - 8/23/2011 14:38
Dazu sollten sie über die release Session gehen
row = context.getSelectedRow();
dataSet =e.getDataset(row);currentEntity =dataSet.getEntity();schema = dataSet.getTableTemplate().getSchema();Session releaseSession = schema.getSession(true);
Entity releasedEntity = releaseSession.find(currentEntity.getKeyValue());if (releasedEntity != null) {// found}0
Vous devez vous connecter pour laisser un commentaire.
Commentaires
1 commentaire