JPAStorage
Posted: Thu Apr 09, 2015 1:06 pm
Hallo liebes Team, ich kämpfe zur Zeit mir dem JPAStorage. Das funktioniert alles ziemlich gut, allerdings ist mir nicht klar, wie ich folgende Situation lösen könnte. Etwas vereinfacht, angenommen, ich habe zwei Entitäten:
Wenn ich nun das ein RemoteDataBook mit Flügen auf dem Client habe, enthält es exakt einmal:
Wenn ich mit dem Debugger das RemoteDataBook untersuche enthält es in den Metadaten interessanterweise zwei Spalten mit Namen AIRPORT_id. Wenn ich die unterscheiden könnte, wüsste ich allerdings nicht wie ich an die rankomme.
Diese gezeigte ColumnDefinition-Info habe ich mit dem folgenden Code ermittelt:
Was ich aber bräuchte wäre:
Oder noch besser direkt:
Das habe ich versucht mit folgenden Code zu erreichen:
Das Ergebnis ist aber genau wie ohne diesen Code. Was mache ich falsch?
Viele Grüße!
- Code: Select all
@Entity
public class Flug {
Airport start;
Airport ziel;
[...]
}
@Entity
public class Airport {
String code;
[...]
}
JPAStorage flugStorage = new JPAStorage(Flug.class)
flugStorage.setEntityManager(getEntityManager());
Wenn ich nun das ein RemoteDataBook mit Flügen auf dem Client habe, enthält es exakt einmal:
- Code: Select all
ColumnDefinition ::[AIRPORT_id] ……..
Wenn ich mit dem Debugger das RemoteDataBook untersuche enthält es in den Metadaten interessanterweise zwei Spalten mit Namen AIRPORT_id. Wenn ich die unterscheiden könnte, wüsste ich allerdings nicht wie ich an die rankomme.
Diese gezeigte ColumnDefinition-Info habe ich mit dem folgenden Code ermittelt:
- Code: Select all
for (int counter = 0; counter < rdbLegs.getRowDefinition().getColumnCount(); ++counter) {
System.out.println(rdbLegs.getRowDefinition().getColumnDefinition(counter));
}
Was ich aber bräuchte wäre:
- Code: Select all
ColumnDefinition ::[start_id] ……..
ColumnDefinition ::[ziel_id] ……..
Oder noch besser direkt:
- Code: Select all
ColumnDefinition ::[start_id] ……..
ColumnDefinition ::[start_code] ……..
ColumnDefinition ::[ziel_id] ……..
ColumnDefinition ::[ziel_code] ……..
Das habe ich versucht mit folgenden Code zu erreichen:
- Code: Select all
JPAForeignKey jpaForeignKey = new JPAForeignKey();
jpaForeignKey.setKeyClass(Long.class);
jpaForeignKey.setSingleIdAttribute(true);
jpaForeignKey.setReferencedColumnNames(new String[]{"icaoCode"});
jpaForeignKey.setDetailEntitiesMethode("getStart");
flugStorage.createAutomaticLinkReference(jpaForeignKey, Airport.class);
Das Ergebnis ist aber genau wie ohne diesen Code. Was mache ich falsch?
Viele Grüße!