A parameterized query is a Repository Query that is incomplete (that is, missing some data) when it is created, and is supplied with that data when the query is executed. This is very similar to a PreparedStatement in JDBC. Parameterized queries are supported only in the SQL repository. You can substitute a parameter only for constant values, and not column specifications in a Repository Query. The use of parameters in a Query enables developers to reuse a single instance of that Query over and over again, supplying different parameter values at execution time. For example, if your goal is to create a Query like this:

select id from dps_user where first_name = 'keith'

only the value 'keith' can be parameterized; the column name first_name cannot. Sorting and range information also cannot be parameterized, so only constraints can use parameters. Furthermore, parameterized queries are used only in queries against the database; you cannot use parameterized queries against transient properties or in cases where the SQL Repository component’s useDatabaseQueries property is set to false.