Search the FirstSpirit Knowledge Base
Hallo zusammen,
kann mir jemand sagen ob es die Möglichkeit gibt an die Spalten einer Datenquelle zu kommen?
p = context.getUserService().getStore("contentstore", false);
t = p.getContent2ByName("datenquelle");
columns = t.getTemplate().getMappings();
so komme ich ja an das Mapping ran. Ich hätte gerne alle Spaltennamen in einer Variable. Geht das?
Viele Grüße
Timo
Sorry hab mich geirrt, es geht doch über das Mapping:
bsh % context.getStoreElement().getMappings()[0].getDBAttribute("EN");
<type>
bsh % context.getStoreElement().getMappings()[6].getDBAttribute("EN");
<mediaList>
Viele Grüße
Dennis
Hallo,
ich behaupte das geht nicht über die offene API. Das Mapping gehört zur Definition des TableTemplates. Die Spalten stehen in der Tabelle, die dem Template zugeordnet ist.
de.espirit.or.schema.Table getTable()
Diese Methode existiert in der API im EntityType der über das Mapping erreichbar ist. Jedoch ist die Methode und Klasse in der API theoretisch nicht erreichbar.
Viele Grüße
Dennis
Sorry hab mich geirrt, es geht doch über das Mapping:
bsh % context.getStoreElement().getMappings()[0].getDBAttribute("EN");
<type>
bsh % context.getStoreElement().getMappings()[6].getDBAttribute("EN");
<mediaList>
Viele Grüße
Dennis
Sehr gut, das klappt wunderbar.
ist dann getMappings() ein Array? Wie bekomme ich die Länge bzw. wieviele Spalten die Tabelle hat, sodass ich loopen kann?
Hallo,
ja und auf Arrays gibts length() und es gibt in Java For-Schleifen:
bsh % context.getStoreElement().getMappings();
<[Lde.espirit.firstspirit.access.store.templatestore.TableTemplate$Mapping;@17bd678>
bsh % context.getStoreElement().getMappings().length();
<20>
bsh %
Viele Grüße
Dennis