Traducir consulta SQL en JOOQ

Fisher Coder:

Tengo una consulta SQL como esto:

select 
  e.event_type as eventType, 
  e.app_name as appName, 
  e.from_number as appNumber, 
  e.timestamp as messageTime, 
  b.created_at as blockTime 
from event_log e use index (idx_event_type_timestamp) 
  join blocked_phone_numbers b 
    on b.app_name = e.app_name
    and b.number = e.to_number 
where e.event_type = 1 
  and e.timestamp > 2018-09-08
  and b.created_at < e.timestamp 
limit 10;

y necesito refactorearlo en una consulta JOOQ, aquí es donde llegué:

SelectLimitPercentStep<Record> selectLimitPercentStep = context
                .select(EVENT_LOG.EVENT_TYPE, EVENT_LOG.APP_NAME, EVENT_LOG.FROM_NUMBER, EVENT_LOG.TIMESTAMP)
                .select(BLOCKED_PHONE_NUMBERS.CREATED_AT)
                //.use_index//todo: use index
                .from(EVENT_LOG)
                .join(BLOCKED_PHONE_NUMBERS)
                .on(EVENT_LOG.APP_NAME.eq(EVENT_LOG.APP_NAME).and(EVENT_LOG.TO_NUMBER.eq(BLOCKED_PHONE_NUMBERS.NUMBER)))
                .where(EVENT_LOG.EVENT_TYPE.eq((byte) EventType.OUTBOUND_SENT.ordinal())
                    .and(EVENT_LOG.TIMESTAMP.gt(new Timestamp(earliestTime.getMillis())))
                    .and(BLOCKED_PHONE_NUMBERS.CREATED_AT.lt(EVENT_LOG.TIMESTAMP)))
                .limit(1000);

Pero no he encontrado ningún método para traducir esta parte use index (idx_event_type_timestamp)en JOOQ, cualquiera podría arrojar alguna luz, por favor?

Lukas Eder:

jOOQ tiene un Table.useIndex()método, sólo lo utilizan.

EVENT_LOG.useIndex("idx_event_type_timestamp")

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=234752&siteId=1
Recomendado
Clasificación