torna all'elenco degli elementi della sezione finders

Elemento di catalogo: QBEFinder

Descrizione

Mediante questa operazione di ricerca è possibile effettuare query basate sul paradigma QBE - Query By Examples, che hanno come risultato uno o più record.

Caratteristiche (features)

cod.nomedescrizione
FNDQBE001 select by examples

La modalità di utilizzo del FindByExamples prevede la possibilità di fornire in input al metodo di query due insiemi di esempi (positivi e negativi). A seconda del contenuto di tali esempi verranno inclusi o esclusi dal risultato i vari record della tabella associata al DataAccessObject; in particolare un record sarà incluso nell' insieme dei risultati se:

  • soddisfa almeno uno degli esempi positivi (criteri di inclusione)
  • non soddisfa nessuno degli esempi negativi (criteri di esclusione)

Il parametro di input è unico e può assumere una delle seguenti forme:

  1. può essere la classe del dto associata al DataAccessObject
  2. può essere un array ([]) di oggetti che hanno come tipo la classe del dto associata al DataAccessObject
  3. può essere una classe java qualsiasi (il cui full qualified name deve essere fornito dall'utente)

Ciascun esempio permette di specificare un FieldCheck su ciascuno dei campi del DTO associato al DAO. Un esempio è da ritenersi soddisfatto se soddisfa tutti i check impostati in quell'esempio.

FNDQBE002 read main table columns

Il risultato della operazione contiene tutte le colonne della tabella principale associata al DataAccessObject, a meno che non venga utilizzata la funzione di LookupResolver (v.)

FNDQBE003 read resolved lookup

A fronte della presenza nel DataAccessObject di un LookupResolver, il risultato della operazione contiene il DTO di lookup invece che le colonne corrispondenti alla ForeignKey. Il nome della property è derivato dall'attributo name del LookupResolver.

FNDQBE004 select distinct

Permette di effettuare una selezione di record coerentemente con la sintassi select distinct del linguaggio SQL. E' possibile indicare una o più colonne. Il risultato della query sarà tale che:

  • in ciascun DTO saranno valorizzati soltanto i campi corrispondenti alle colonne incluse nella clausola distinct
  • nella lista dei risultati ogni distinta n-upla di valori distinti sarà contenuta una sola volta

FNDQBE005 equality check (dati numerici)

Permette di verificare se il valore di una colonna di tipo numerico coincide esattamente con un valore costante. E' possibile anche negare il criterio.

FNDQBE006 range check (dati numerici)

Permette di verificare se il valore di una colonna di tipo numerico appartiene ad un intervallo tra due valori costanti (oppure se si specifica un solo valore, di verificare se il valore della colonna è nel semiasse corretto rispetto al valore specificato. Nel caso in cui siano specificati due estremi viene utilizzato il costrutto SQL between, mentre nel caso in cui sia specificato solo uno dei due estremi viene utilizzato l'operatore di confronto '<' o '>'. E' inoltre possibile specificare se gli estremi sono inclusi o meno tra i valori ammessi. E' possibile anche negare il criterio.

FNDQBE007 null check

Permette di verificare se il valore di una colonna è nullo. E' possibile anche negare il criterio.

FNDQBE008 equality check (dati testuali)

Permette di verificare se il valore di una colonna di tipo stringa coincide esattamente con un valore costante. Se la costante contiene il carattere '%' viene utilizzato il costrutto like. E' possibile anche negare il criterio e ignorare le differenze di case nel testo.

FNDQBE009 equality check (dati di tipo 'data')

Permette di verificare se il valore di una colonna di tipo data coincide esattamente con un valore costante. E' possibile anche negare il criterio.

FNDQBE010 range check (dati di tipo data)

Permette di verificare se il valore di una colonna di tipo data appartiene ad un intervallo tra due valori costanti (oppure se si specifica un solo valore, di verificare se il valore della colonna è nel semiasse corretto rispetto al valore specificato. Nel caso in cui siano specificati due estremi viene utilizzato il costrutto SQL between, mentre nel caso in cui sia specificato solo uno dei due estremi viene utilizzato l'operatore di confronto '<' o '>'. E' inoltre possibile specificare se gli estremi sono inclusi o meno tra i valori ammessi. E' possibile anche negare il criterio.

Grado di implementazione delle varie caratteristiche

Nella tabella seguente è riportato il grado di implementazione delle varie caratteristiche/funzioni dell'elemento QBEFinder nelle differenti implementazioni.

codfeature datagen
2.0.0
standard
FNDQBE001select by examples
FNDQBE002read main table columns
FNDQBE003read resolved lookup
FNDQBE004select distinct
FNDQBE005equality check (dati numerici)
FNDQBE006range check (dati numerici)
FNDQBE007null check
FNDQBE008equality check (dati testuali)
FNDQBE009equality check (dati di tipo 'data')
FNDQBE010range check (dati di tipo data)