Wenn Sie keine Klauseln AS in SQL-Abfragen verwenden, die Joins oder Union-Verknüpfungen erzeugen, oder die berechnete Spalten enthalten, können die Abfrageergebnisse Spalten enthalten, deren Namen möglicherweise nicht eindeutig sind oder die keine Namen haben. pureQuery kann solche Spalten nicht zu Eigenschaften in den Beans zuordnen, die die Abfrageergebnisse enthalten sollen. Sie können die Spalten mit einer bestimmten Methode set() manuell zuordnen.
Diese Methode set() kann in mindestens zwei Situationen hilfreich sein:
- Ein Abfrageergebnis enthält nicht eindeutige Spaltennamen (beispielsweise im Abfrageergebnis für einen Join, in dem derselbe Spaltenname in mehreren Tabellen vorkommt).
Anmerkung: In dieser Situation können Sie die Annotation @Column in der Bean verwenden, die das Abfrageergebnis enthält. Mit dieser Annotation können Sie sowohl den Namen der Spalte angeben, der eine Eigenschaft zuordnet ist, als auch den Namen der Tabelle, die die Spalte enthält.
- Ein Abfrageergebnis enthält Spalten, die aus Ausdrücken generiert werden.
In diesen Fällen können Sie die folgende Methode in der Bean implementieren, die die Daten von dem zurückgegebenen Abfrageergebnis enthält:
public void set (String colName, String tableName, int columnIndex, Object setVal)
{
. . .
}
- colName
- Der Name der Spalte, von der der Wert zurückgegeben wird. Dieser Wert kann NULL oder eine leere Zeichenfolge ("") sein.
- tableName
- Der Name der Tabelle, die die Spalte enthält. Dieser Wert kann NULL oder eine leere Zeichenfolge ("") sein.
- columnIndex
- Eine ganze Zahl, die die Position der Spalte im Abfrageergebnis angibt. Der Index beginnt bei 1.
Achtung: Sie müssen keinen Wert für columnIndex angeben.
Änderungen in der SQL-Abfrage können den Wert von columnIndex ändern, der für eine Spalte zurückgegeben wird. Die Verwendung von columnIndex kann darüber hinaus die Methode set() auf eine bestimmte Abfrage begrenzen und sie so für andere Abfragen nutzlos machen. In den meisten Fällen reichen tableName und colName zur Angabe der Eigenschaft aus, für die der Wert gesetzt werden soll.
- setVal
- Der Wert in der Spalte.