jpa
  • jpql
  • 2012-03-27 3 views 3 likes 
    3

    In JPQL was Charakter entkommen wir Zeichen zu entkommen wie "'" verwenden könnenEscape-Zeichen in JPQL

    Ex: Ich tue so etwas wie

    "... wo person.name =' Andy ‚ "

    Hier funktioniert gut

    aber wenn die Person Name ist Andy dann die where-Klausel werden wie

    " ... wo person.name = 'Andy'“

    und es gibt Fehler zurück,

    Antwort

    3

    Es kann nicht herausfinden, wo Sie Zeichenfolge endet endet. Lösung ist schön in der Spezifikation gesagt:

    Ein Zeichenfolgenliteral, das ein Apostroph enthält zwei einfache Anführungszeichen, zum Beispiel dargestellt wird: ‚wörtliche‘ s.

    In Ihrem Fall bedeutet:

    ...where person.name='Andy''s' 
    
    5

    Unterhalb der für die Ausführung Abfrage mit dem Namen Parameter Beispielcode ist.

    Query query = entityManager.createQuery("SELECT p FROM Person p WHERE p.name LIKE :name"); 
    
    query.setParameter("name", personName); 
    

    Hier können Sie passieren Zeichenfolge personName, die wie „Andy“ Sonderzeichen enthalten.

    Auch sieht es sehr sauber aus & erfordert keine Überprüfung der Parameter vor Abfrageausführung & Ändern der Suchzeichenfolge.

     Verwandte Themen

    • Keine verwandten Themen^_^