2016-05-11 11 views
0

Ich versuche, eine Abfrage mit vielen Parametern festzulegen.SetParametres in Abfrage

für eine Abfrage mit 1 param seine adaequat:

//** 
    List<?> list = null; 
    String query = String.format("from %s where %s = :%s ", a, uniqueField[0], uniqueField[0]); 
    list = s.createQuery(query).setParameter(uniqueField[0], arg0.getSsn()).list(); 

, wie ich mit dieser Abfrage das gleiche tun:

List<?> list = null; 
String query = String.format("from %s where %s = :%s and %s = :%s ", a, uniqueField[0], uniqueField[0], uniqueField[1], uniqueField[1]); 
// list = s.createQuery(query)... ? 

Vielen Dank für alle Tipps ..

+0

Sollten Sie keine Datenbank-API verwenden? –

+0

@Nicholas Ich benutze Hibernate – FuSsA

+1

Benennen Sie die Parameter dann: ": param1", ": param2". Dann q.setParameter (": param1", value1) .setParam (": param2", value2) ... –

Antwort

0

Bei der Verwendung von Bei einer Abfrage können Sie entweder benannte Parameter oder Positionsparameter verwenden. Named Parameter sind ziemlich einfach, ich bin nicht sicher, was die Auswirkungen auf die Leistung sind:

Also, nur die Parameter dann benennen: ": param1", ": param2". Dann q.setParameter (": param1", value1) .setParam (": param2", value2).

Referenz: In JPA which type of parameter is better to use “positional/named”?