tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von Franz Degenhardt
  • 1 Beitrag von sebastianb
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
639
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Bexx
    Bexx Bexx ist offline Programmer
    Registriert seit
    Feb 2009
    Ort
    Saarbrooklyn
    Beiträge
    222
    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!
     
    Christopher Columbus didn't need directions, neither do we!

    Alles hat eine Logik. Selbst wenn es keine Logik gibt.

    ***

    NetBeans 7.x, GlassFish v3
    JSF 2.0
    Java EE

  2. #2
    Avatar von Franz Degenhardt
    Franz Degenhardt Franz Degenhardt ist offline Mitglied Brokat
    Registriert seit
    Mar 2004
    Ort
    Köln
    Beiträge
    378
    In Oracle ist das eine Variable. Erlaubt ein besseres Statement Caching.

    http://www.akadia.com/services/ora_bind_variables.html
    Bexx bedankt sich. 
    Denken gefärdet die Gewohnheit

  3. #3
    Avatar von Bexx
    Bexx Bexx ist offline Programmer
    Registriert seit
    Feb 2009
    Ort
    Saarbrooklyn
    Beiträge
    222
    Klasse, danke für den Artikel!
     
    Christopher Columbus didn't need directions, neither do we!

    Alles hat eine Logik. Selbst wenn es keine Logik gibt.

    ***

    NetBeans 7.x, GlassFish v3
    JSF 2.0
    Java EE

  4. #4
    sebastianb sebastianb ist offline Mitglied Gold
    Registriert seit
    Dec 2009
    Beiträge
    125
    Naja nicht ganz. Mit einem Doppelpunkt wird in JPQL ein Parameter deklariert, den du später setzen kannst:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    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/...f_input_params

    Gruß Sebastian
    Bexx bedankt sich. 

  5. #5
    hiubhp hiubhp ist offline Grünschnabel
    Registriert seit
    Aug 2011
    Beiträge
    1
    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ß
     

Ähnliche Themen

  1. Wie kann man folgenden Effekt erstellen?
    Von D@nger im Forum Creative Lounge
    Antworten: 8
    Letzter Beitrag: 03.02.06, 10:50
  2. Sorry, aber ich weiss nicht wie ich das Script nennen kann
    Von Johnnii360 im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 16.11.05, 19:32
  3. Kann man das schon ein CMS nennen?
    Von cameeel im Forum Coders Talk
    Antworten: 3
    Letzter Beitrag: 26.04.05, 19:58
  4. Antworten: 8
    Letzter Beitrag: 05.04.04, 08:57
  5. Kann mir jemand ....
    Von Vienna|Cyber|Soldeir im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 09.04.01, 12:59

Stichworte