7

現在、Jooq を使用してクエリを実行すると、各レコード オブジェクトが期待されるレコード タイプに明示的にキャストされます。

Result<Record> result = sql.select().from(Tables.COUNTRY).fetch();
for (Record r : result) {
    CountryRecord countryRecord = (CountryRecord) r;
    //Extract data from countryRecord
    countryRecord.getId();
}

Jooq を使用して、結果を目的のレコード型に直接キャストすることは可能ですか?

など (これはコンパイルされません):

Result<CountryRecord> countryRecords = (Result<CountryRecord>) sql.select().from(Tables.COUNTRY).fetch();
for (CountryRecord cr : countryRecords) {
    cr.getNamet();
    //etc...
}
4

2 に答える 2

7

select().from(...)生成されたレコード タイプを取得する場合は、この構文を使用しないでください。selectFrom()代わりに使用してください。これはここに文書化されています:

http://www.jooq.org/doc/3.1/manual/sql-execution/fetching/record-vs-tablerecord

したがって、クエリは次のようになります。

Result<CountryRecord> countryRecords = sql.selectFrom(Tables.COUNTRY).fetch();
for (CountryRecord cr : countryRecords) {
    cr.getNamet();
    //etc...
}
于 2013-07-17T07:16:42.103 に答える