I'm new to Jooq. I have written a query in Sql:
UPDATE agenda_item
SET begindatum = '<new value>', einddatum = '<new value>', version = (agenda_item.version + 1)
FROM agenda_item_type
,(SELECT agenda_item.id
,agenda_item.begindatum
,agenda_item_type.hele_dag
FROM agenda_item
,agenda_item_type
WHERE agenda_item_type.id = agenda_item.item_type_id) AS heleDagEvent -- Derived table name
WHERE agenda_item_type.id = agenda_item.item_type_id
AND agenda_item.agenda_id = '<agenda id parameter>'
AND heleDagEvent.id = '<agenda_item_id parameter>'
AND agenda_item.begindatum = heleDagEvent.begindatum
AND ((heleDagEvent.hele_dag = true)
OR (agenda_item.id = '<agenda_item_id parameter>'
AND heleDagEvent.hele_dag = false)
)
;
usingDSL { context ->
context
.update(AGENDA_ITEM)
.set(AGENDA_ITEM.BEGINDATUM, agendaItem.begindatum)
.set(AGENDA_ITEM.EINDDATUM, agendaItem.einddatum)
.set(AGENDA_ITEM.BEGINTIJD, agendaItem.begintijd)
.set(AGENDA_ITEM.EINDTIJD, agendaItem.eindtijd)
.set(AGENDA_ITEM.RECORD_VERSION, agendaItem.recordVersion + 1)
.from(AGENDA_ITEM_TYPE
/* derived tables are not yet supported. See known limitations:
https://github.com/jOOQ/jOOQ/issues/11911 */
,(((
AGENDA_ITEM.ID,
AGENDA_ITEM.BEGINDATUM,
AGENDA_ITEM_TYPE.HELE_DAG)
.from(AGENDA_ITEM,
AGENDA_ITEM_TYPE)
.where(AGENDA_ITEM_TYPE.ID.eq(AGENDA_ITEM.ITEM_TYPE_ID))).as("heleDagEvent"))
.and (AGENDA_ITEM_TYPE.ID.eq(AGENDA_ITEM.ITEM_TYPE_ID)
.and(AGENDA_ITEM.AGENDA_ID).eq(agendaId.value) //
agenda.id .and(heleDagEvent.id).eq(agendaItem.id.value)
.and(AGENDA_ITEM.BEGINDATUM).eq(heleDagEvent.BEGINDATUM)
.and((heleDagEvent.HELE_DAG).eq(true)
.or(
AGENDA_ITEM.ID).eq(agendaItem.id.value)
.and(heleDagEvent.HELE_DAG).eq(false)
)
).execute
Is this not possible? Can someone help or push in the direction how to solve this?