【发布时间】:2015-10-09 22:15:53
【问题描述】:
当我使用 Record13 或更多 orderBy() 方法时显示错误
orderBy(org.jooq.SortField<T1>) in SelectOrderByStep cannot be applied to
orderBy(org.jooq.SortField<java.sql.Timestamp>)
使用 Record12 或更低版本一切正常。
Record14 错误代码:
public Result<Record14<Integer, Timestamp, OperationType, Integer, Integer, String, String, String,
Integer, String, String, Integer, String, String>> getOperationsHistory(int ownerId, Timestamp fromDate, Timestamp toDate, Integer outletId, Integer merchantId){
Condition condition = OPERATION.TIMESTAMPEVENT.between(fromDate, toDate)
.and(OUTLET.OWNERID.eq(ownerId));
if (outletId != null) {
condition = condition.and(OPERATION.OUTLETID.eq(outletId));
}
if (merchantId != null) {
condition = condition.and(OPERATION.MERCHANTID.eq(merchantId));
}
Select<Record14<Integer, Timestamp, OperationType, Integer, Integer,
String, String, String, Integer, String, String, Integer, String, String>> select =
db.select(OPERATION.ID, OPERATION.TIMESTAMPEVENT, OPERATION.TYPE, OPERATION.AMOUNT, OPERATION.CREDITS, MERCHANT.NAME,
CLIENT.PHONE, CLIENT.PUBLICID, CLIENT.ID, CLIENT.NAME, CLIENT.AVATARURL, RECEIPT.PRINTEDNO, OFFER.TITLE, OFFER.TYPE)
.from(OPERATION.leftOuterJoin(CLIENT).on(OPERATION.CLIENTID.eq(CLIENT.ID))
.leftOuterJoin(MERCHANT).on(OPERATION.MERCHANTID.eq(MERCHANT.ID))
.leftOuterJoin(OUTLET).on(OPERATION.OUTLETID.eq(OUTLET.ID))
.leftOuterJoin(RECEIPT).on(OPERATION.RECEIPTID.eq(RECEIPT.ID))
.leftOuterJoin(OFFER).on(OPERATION.OFFERID.eq(OFFER.ID)))
.where(condition).orderBy(OPERATION.TIMESTAMPEVENT.desc());
return select.fetch();
}
如何解决?
【问题讨论】:
-
什么编译器(和版本)产生了这个错误?例如。 Eclipse build id / javac 编译器版本等。另外,你用的是什么jOOQ版本?
-
@LukasEder 编译器版本 1.8。 JOOQ 3.4.2 版
-
你能给出exact编译器版本吗?例如。
javac -version,或 Eclipse 构建 ID(从帮助 > 关于 Eclipse) -
@LukasEder javac 1.8.0_45