JOIN を必要とするクエリを実行する方法を探しています。準備されたステートメントでこれを行う方法はありますか、それともrawQuery
私が持っている唯一のオプションです。が唯一のオプションである場合rawQuery
、返されたオブジェクトを実装されている Dao のオブジェクトに自動的にマップする方法があります。
ドキュメントと例を調べましたが、未加工のデータベース結果を ORM オブジェクト クラスにマップできるものは見つかりませんでした。
JOINを必要とするクエリを実行する方法を探しています。
ORMLiteは、単純なJOINクエリをサポートしています。これを実現するためにrawクエリを使用することもできます。
を使用して、Dao.getRawRowMapper()
見つけたクエリをマップするか、カスタムマッパーを作成できます。String[]
ドキュメントには、オブジェクトにマップする方法を示す次のサンプルコードがあります。
GenericRawResults<Foo> rawResults =
orderDao.queryRaw(
"select account_id,sum(amount) from orders group by account_id",
new RawRowMapper<Foo>() {
public Foo mapRow(String[] columnNames,
String[] resultColumns) {
return new Foo(Long.parseLong(resultColumns[0]),
Integer.parseInt(resultColumns[1]));
}
});
結果セットをモデル オブジェクトに自動マッピングする方法を見つけました。
// return the orders with the sum of their amounts per account
GenericRawResults<Order> rawResults =
orderDao.queryRaw(query, orderDao.getRawRowMapper(), param1)
// page through the results
for (Order order : rawResults) {
System.out.println("Account-id " + order.accountId + " has "
+ order.totalOrders + " total orders");
}
rawResults.close();
Dao
重要なのは、マッピングを処理するを使用して、オブジェクトから行マッパーをプルするgetRawRowMapper()
ことです。これが見つけた人の助けになることを願っています。
私はまだ 内で結合を行う機能が欲しいと思っていますがQueryBuilder
、それがサポートされるまでは、私の意見ではこれが次善の策です。