I have the following query:

        Field<Integer> jobTaskCount = sqlFactory.select(Task.ID.count())
                .where(Task.JOB_ID.equal(Job.ID), 
Task.STATUS.in(TaskStatus.EXECUTING, TaskStatus.QUEUED).not())
                .asField();

            result = sqlFactory.select(Job.ID, Job.JOBTYPE_ID).from(Job.JOB)
                    .where(Job.STATUS.equal(JobStatus.EXECUTING), 
jobTaskCount.equal(0)).limit(1).forUpdate()
                    .fetchOne();
 

In which .from(Task.TASK) part is missing in the subquery. But instead of 
complaining about incorrect query syntax, jooq constructed the following:

select distribucalc.job.id, distribucalc.job.jobtype_id from 
distribucalc.job where (distribucalc.job.status = 'EXECUTING' and (select 
count(distribucalc.task.id) from dual where (distribucalc.task.job_id = 
distribucalc.job.id and not(distribucalc.task.status in ('EXECUTING', 
'QUEUED')))) = 0) limit 0, 1 for update


As you can see missing FROM clause was replaced by unknown "from dual".

Jooq version 1.5.8

Reply via email to