MySQL 테이블에서 임의의 레코드 목록을 선택하려고하지만 특정 ENUM 유형에 우선 순위를두고 있습니다. 다음 코드를 작성할 때JOOQ는 orderBy 메소드에서 Field와 SortField를 결합합니까?
select * from table_name where expires <= UNIX_TIMESTAMP()*1000
order by enum_type desc, rand() limit 500;
하지만 내 IDE에서 컴파일 오류를 얻을 : 내가 터미널에서 다음 일반 SQL 쿼리를 실행할 때 잘 작동, 이제
private List<FooRecord> getNextRecordsWeighted(Condition condition, int recordLimit) {
final long timeNow = System.currentTimeMillis();
return context.selectFrom(TABLE_NAME).where(TABLE_NAME.EXPIRES.lessOrEqual(timeNow)).
orderBy(TABLE_NAME.ENUM_TYPE.desc(), DSL.rand()).limit(recordLimit).fetch();
}
무엇 내 IDE 분명히이 작업을 호출 할 수있는 호환 가능한 메서드가 없다는 것입니다. 어떻게 해결할 수 있을까요? 해결 방법이 있습니까?
정말 고마워요. 아아, 다른 문제가 발생했습니다. 내 편집 좀 봐 주시겠습니까? – TheShahin
@ TheShahin : 천만에요. 참고 : 스택 오버 플로우가 작동하는 방식은 문제마다 하나의 질문을하는 것입니다. 향후 방문자가 Google을 통해이 질문을 발견했을 때 진행 상황을 훨씬 쉽게 알 수 있습니다. 편집을 다시 삭제하고 새로운 질문에 붙여 넣으십시오. 나는 거기에 (또는 아마도 다른 사람) 대답을 할 것이다 –
주목. 편집을 삭제했습니다. 나는 원시 SQL 문자열을 jOOQ 쿼리에 포함 시켜서이 문제를 해결했다. 그것이 효과가 없지만 작동하지만 마감일로 인해 변경할 시간이 없습니다 :) 다시 한 번 감사드립니다. – TheShahin