Una query memorizzata è una query che viene memorizzata nel database ed identificata mediante un nome. I tuple di qualifica vengono assemblati in maniera dinamica quando viene eseguita la query. Per riutilizzare le query memorizzate, è possibile utilizzare parametri nella definizione di query risolte al runtime.
Ad esempio,
sono state definite le proprietà personalizzate per memorizzare i nomi dei clienti. È possibile definire
le query per restituire le attività associate a un cliente particolare, ACME Co. Per eseguire la query di queste informazioni, la clausola
where nella
query dovrebbe essere simile all'esempio seguente:
String whereClause =
"TASK.STATE = TASK.STATE.STATE_READY
AND WORK_ITEM.REASON = WORK_ITEM.REASON.REASON_POTENTIAL_OWNER
AND TASK_CPROP.NAME = 'company' AND TASK_CPROP.STRING_VALUE = 'ACME Co.'";
Per rendere riutilizzabile questa query in modo da ricercare anche il cliente,
BCME Ltd, è possibile utilizzare i parametri per i valori della proprietà personalizzata. Se si aggiungono parametri alla query di attività, potrebbe essere simile al seguente esempio:
String whereClause =
"TASK.STATE = TASK.STATE.STATE_READY
AND WORK_ITEM.REASON = WORK_ITEM.REASON.REASON_POTENTIAL_OWNER
AND TASK_CPROP.NAME = 'company' AND TASK_CPROP.STRING_VALUE = '@param1'";
Il parametro
@param1 viene risolto al runtime dall'elenco
di parametri che viene inoltrato al metodo
query.
Le regole seguenti si applicano all'utilizzo dei parametri nelle query:
- I parametri possono essere utilizzati solo nella clausola where.
- I parametri sono stringhe.
- I parametri sono sostituiti al runtime utilizzando la sostituzione della stringa. Se si necessitano caratteri bisogna specificarli nella clausola where o inviati al runtime come parte del parametro.
- I nomi dei parametri consistono in una stringa @param concatenata con un numero intero. Il numero più basso è 1, che si riferisce al primo elemento nell'elenco dei parametri che è inoltrato all'API della query al runtime.
- Un parametro può essere utilizzato più volte in una clausola where;
tutte le ricorrenze del parametro vengono sostituite dallo stesso valore.