[JPA] Kann mir jemand die Bedeutung folgenden Ausdrucks nennen.....

Bexx

Verrückte Erfinderin bei Daniel Düsentrieb
Hi Foris,

ich möchte über den EntityManager ein Query abfeuern und habe mir im Internet Beispiele für mein Vorgehen gesucht und bin dabei auf einen Ausdruck gestoßen,
der mir bislang noch nicht geläufig war:

"SELECT i.identity FROM Persons AS i WHERE i.name = :name"

Was bedeutet der Doppelpunkt vor dem letzten "name" ?
Ist das zu verstehen wie ein "this." im Java-Quellcode oder was bedeutet das genau?

Danke schonmal vorab!
 
Naja nicht ganz. Mit einem Doppelpunkt wird in JPQL ein Parameter deklariert, den du später setzen kannst:

Java:
String qlString = "select item from Item item where item.name IN :names"; 
Query q = em.createQuery(qlString, Item.class);

List<String> names = Arrays.asList("foo", "bar");

q.setParameter("names", names);
List<Item> actual = q.getResultList();

assertNotNull(actual);
assertEquals(2, actual.size());

Dies können einfache Strings oder in diesem fall auchCollections sein.

10.2.5.4.2. JPQL Named Parameters
http://docs.oracle.com/cd/E11035_01/kodo41/full/html/ejb3_langref.html#ejb3_langref_input_params

Gruß Sebastian
 
Hallo, vergessen Sie nich andere Methode: JPQL Positional Parameters.
Es is möglich Query
"SELECT i.identity FROM Persons AS i WHERE i.name = ?1"
deklarieren und danach
q.setParameter(1, "Klara");
setzen.

Gruß
 

Neue Beiträge

Zurück