2016-05-11 2 views
0

J'essaie de définir une requête avec beaucoup de paramètres.SetParametres in Query

pour une requête avec 1 son travail bien param:

//** 
    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(); 

comment puis-je faire la même chose avec cette requête:

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)... ? 

Merci pour tous les conseils ..

+0

Vous ne devriez pas utiliser une API de base de données? –

+0

@Nicholas j'utilise Hibernate – FuSsA

+1

Il suffit de nommer les paramètres alors: ": param1", ": param2". Alors q.setParameter (": param1", value1) .setParam (": param2", value2) ... –

Répondre

0

Lorsque vous utilisez une requête, vous pouvez utiliser des paramètres nommés ou des paramètres positionnels. Les paramètres nommés sont assez faciles, je ne suis pas sûr de ce que les implications de performance sont:

Donc, il suffit de nommer les paramètres alors: ": param1", ": param2". Alors q.setParameter (": param1", value1) .setParam (": param2", valeur2).

Référence: In JPA which type of parameter is better to use “positional/named”?