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. | nome | descrizione
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: può essere la classe del dto associata al DataAccessObject può essere un array ([]) di oggetti che hanno come tipo la classe del dto associata al DataAccessObject 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.

cod | feature | datagen
--- | --- | ---
2.0.0
standard
FNDQBE001 | select by examples |
FNDQBE002 | read main table columns |
FNDQBE003 | read resolved lookup |
FNDQBE004 | select distinct |
FNDQBE005 | equality check (dati numerici) |
FNDQBE006 | range check (dati numerici) |
FNDQBE007 | null check |
FNDQBE008 | equality check (dati testuali) |
FNDQBE009 | equality check (dati di tipo 'data') |
FNDQBE010 | range check (dati di tipo data) |