Creare sql-query/query in modo dinamico

10 views
Skip to first unread message

this.atos

unread,
Nov 9, 2012, 3:04:54 AM11/9/12
to nh...@googlegroups.com
Buongiorno, 

    per prima cosa saluto tutto il gruppo in quanto nuovo iscritto. 

    Posto questa richiesta di aiuto dal momento che, dopo una giornata e mezza di tentativi, non sono riuscito a ottenere una soluzione che mi piaccia. 

    In un progetto che sto portando avanti sto usando NH 3.3.1. con Oracle come database. Io vorrei scrivere gli scheletri delle mie query nel file XML *.hbm.xml all'interno dei tags <sql-query> o <query> in modo tale da richiamarli poi con il metodo GetNamedQuery("nome_query"), sostituendo i "name" (:key - per intenderci) da codice e poi eseguire la query per ottenere il risultato che mi serve. Questo perché non voglio scrivere o generare query in hardcode nel codice, per ovvie logiche di mantenimento. 

    Quello che non riesco a fare è creare query dinamiche che si compongano di volta in volta in base ad uno scheletro predefinito. Mi spiego meglio. Se io avessi un query del tipo:

select {a.*} from tabella_a {a} where a.Colonna1 = :colonna1 and a.Colonna2 = :colonna2

io vorrei che la query diventasse "select {a.*} from tabella_a {a} where a.Colonna1 = :colonna1" se il nome ":colonna2" fosse null o empty o "select {a.*} from tabella_a {a} where  a.Colonna2 = :colonna2"
se io cambio ":colonna1" fosse null o empty. Ovviamente se gli passo ambo i campi devo poter eseguire la query completa. 

    Come posso ottenere questa cosa con NH, senza scrivere pacchi di codice inutile. 


Mattia 

Reply all
Reply to author
Forward
0 new messages