불행히도이 특정 쿼리의 경우 형식적으로 count()
값을 가져 오는 "더 좋은"방법은 많지 않습니다. 당신이 무엇을 할 수 있는지, 형식 안전성을 추가, 이것이다 :
문제는 투사에 대한 형식 정보의 대부분이
fetch()
방법은 시간에 의해, 자바 컴파일러에 "손실"된 것입니다
Field<Integer> f = count();
Integer count = jooq.
.select(f) // Or selectCount(). Replaced it to illustrate the case
.from(USERS)
.fetchOne(f);
"도달했다". ResultQuery.fetchXXX()
메소드가 SELECT
절에서이를 복구 할 수있는 방법은 없습니다.
jOOQ 사용자 그룹에서 일부 사용자는 fetch()
메쏘드로 투영을 전적으로, C#의 LINQ 또는 Scala의 SLICK로 옮기라고했습니다. 이렇게하면 더 진보 된 SELECT
문을 매우 복잡하게 만들 수 있습니다. more elaborate explanation is documented here.
jOOQ 3.0에서는 추가 레코드 수준 유형 안전성이 도입되었습니다. 따라서 jOOQ 3.3에서는 (#2246으로 등록 된) 단일 값을 가져올 수 있습니다.
<T> T fetchValue(Select<Record1<T>> select);