Package io.jmix.aitools.dataload.validation.validator
@NullMarked
package io.jmix.aitools.dataload.validation.validator
-
ClassesClassDescriptionRejects SQL-only constructs that are not valid JPQL: SQL pagination (LIMIT/OFFSET), SQL-specific date functions and interval expressions, and CURRENT_DATE/CURRENT_TIME/CURRENT_TIMESTAMP used with parentheses.Checks that the query text is present (not blank).Checks that the query is syntactically valid JPQL by parsing it.Shared helpers for JPQL validators.Checks that the paging hints are sane:
maxResultspositive andfirstResultzero or greater.Checks that the JPQL named parameters and the declared parameters match — flagging both parameters used in the query but missing from the declaration, and declared parameters that the query never uses.Checks that the query is a read-only select, rejecting non-select queries and write operations (update, delete, insert), as well as the native escape functionsSQL(...)andFUNCTION(...)that can run raw SQL or native database functions and so bypass the read-only guarantee.Checks that noASalias in the query uses a reserved word.Checks that the query's root entity is non-blank and known to the introspected domain model.Checks that only supported Jmix date macros are used:@between,@today,@dateEquals,@dateBefore,@dateAfter.Checks that only supported Jmix relative date-time constants (such asFIRST_DAY_OF_CURRENT_MONTH) are used, ignoring string literals and standard JPQL temporal keywords.Checks that every entity referenced by the query is known to the introspected domain model.Checks that every property path referenced by the query resolves against the introspected domain model.