EJB: Parametrisierte SQL-Abfragen und LIKE-Klausel

atoc

Grünschnabel
Hallo allerseits,

ich habe ein Problem mit einer Abfrage in einer Entity-Bean und vielleicht kann mir ja einer von euch weiterhelfen.

Also ich möchte eine parametrisierte Abfrage erstellen, das klappt in der Form auch ganz gut:

Code:
private @PersistenceContext EntityManager em;
Query query = em.createQuery("SELECT o from testObject o where o.attribut = :attr")
	.setParameter("attr",attr);


Jetzt meine Frage, ist das überhaupt möglich den LIKE-Operator in Verbindung mit einem Parameter zu verwenden?
Ohne funktionierts ja auch super:

Code:
private @PersistenceContext EntityManager em;
Query query = em.createQuery("SELECT o from testObject o where o.attribut LIKE '%".attr."%'");


Aber wenn ich einen Parameter einbinde, passiert das gleiche wie im ersten Codebeispiel, es werden nur genau passende Einträge selektiert:

Code:
private @PersistenceContext EntityManager em;
Query query = em.createQuery("SELECT o from testObject o where o.attribut LIKE :attr")
	.setParameter("attr",attr);

Geht das was ich will überhaupt, oder ist das gar nicht so vorgesehen? Wär der Hammer wenn jemand helfen könnte :)

Beste Grüße
 
ok, hat sich schon erledigt...

Die Variablen müssen natürlich trotzdem die Platzhalter '%' bzw. '_' enthalten.

macht man vorher

Code:
attr = "%"+attr+"%"

klappt alles wie es soll..

grüße
 

Neue Beiträge

Zurück