2017-09-29 3 views
3

in der Ruhe erklärt wurde, ist es eine Möglichkeit, wenn eine gegebenen @NamedNativeQuery zu überprüfen existiert vor dem Aufruf: Session.getNamedQuery("queryName");Wie zur Laufzeit prüfen, ob ein NamedNativeQuery

mir den Namen der Abfrage zur Laufzeit zu komponieren, so brauche ich einen Weg zu finden, wenn sie die folgende Ausnahme zu vermeiden, um vorhanden ist,:

MappingException: Benannte Abfrage nicht bekannt: queryname

Antwort

-1

Verwenden sie die Methode getNamedParameters(), um die Namen aller benannten Parameter der Abfrage zu überprüfen.

Update: Derzeit kann nur überprüft werden, ob eine benannte Abfrage mit einem bestimmten Namen vorhanden ist EntityManager.createNamedQuery(…) aufrufen. Das Nichtvorhandensein einer Abfrage kann durch Auslösen einer Ausnahme ausgedrückt werden.

+1

Ich muss überprüfen, ob die @NamedNativeQuery deklariert wurde, nicht die Parameter –

+0

Ist es in Ordnung, nach der '@ NamedNativeQuery' /' @ NamedNativeQueries' Annotation zu suchen? Es ist zur Laufzeit verfügbar. Eine hacky Lösung. –

Verwandte Themen