Skip to content

Querydsl SQL query serialization

John Tims edited this page Oct 29, 2015 · 6 revisions

The SQLQuery populates a QueryMetadata instance via a QueryMixin class. When the query is populated it is serialized into a SQL query string and bindings using the SQLSerializer class.

The following parts of the QueryMetadata class are used in the serialization process:

WITH

  • metadata.getFlags() (where Position.WITH)

  • metadata.getFlags() (where Position.START)

SELECT

  • metadata.getProjection()
  • metadata.getFlags() (where Position.AFTER_SELECT)
  • metadata.getFlags() (where Position.AFTER_PROJECTION)

FROM (and joins)

  • metadata.getJoins()

WHERE

  • metadata.getWhere()
    • metadata.getFlags() (where Position.BEFORE_FILTERS)
    • metadata.getFlags() (where Position.AFTER_FILTERS)

GROUP BY

  • metadata.getGroupBy()
    • metadata.getFlags() (where Position.BEFORE_GROUP_BY)
    • metadata.getFlags() (where Position.AFTER_GROUP_BY)

HAVING

  • metadata.getHaving()
  • metadata.getFlags() (where Position.BEFORE_HAVING)
  • metadata.getFlags() (where Position.AFTER_HAVING)

ORDER BY

  • metadata.getOrderBy()
  • metadata.getFlags() (where Position.BEFORE_ORDER)
  • metadata.getFlags() (where Position.AFTER_ORDER)

modifiers (LIMIT & OFFSET)

Clone this wiki locally