G
Gelöschtes Mitglied 5909
Gast
Ich hab ein kleines Problemchen mit JPQL und zwar speziell mit LIKE
Im Moment erzielt man bei meiner Suchfunktion nur treffer, wenn das Wort exakt übereinstimmt,
was bei einer Suche natürlich nicht sonderlich toll ist.
Wildcards wie %:value% funktionieren nicht, da schmeißt er ne Exception
bei google bin ich noch auf ESCAPE gestoßen, wobei ich ja eigentlich erstmal nix escapen will...
vielleicht hat ja jemand eine Idee.
p.s.: Die Transaktion ist nötig um das Refresh durchzuführen und das ist nötig weil ich sonst teilweise alte Daten ausm Cache bekomm... (geht vielleicht anders besser, ist aber nicht wichtig)
Im Moment erzielt man bei meiner Suchfunktion nur treffer, wenn das Wort exakt übereinstimmt,
was bei einer Suche natürlich nicht sonderlich toll ist.
Wildcards wie %:value% funktionieren nicht, da schmeißt er ne Exception
Code:
public List<Tag> getTagsByValue(String value) {
String jpql = "SELECT x from Tag x where x.value LIKE :value";
Query query = entityManager.createQuery(jpql);
query.setParameter("value", value);
try {
entityManager.getTransaction().begin();
List<Tag> resultList = query.getResultList();
for (Tag tag : resultList) {
entityManager.refresh(tag);
}
entityManager.getTransaction().commit();
return resultList;
} catch (Exception e) {
e.printStackTrace();
return Collections.emptyList();
}
}
bei google bin ich noch auf ESCAPE gestoßen, wobei ich ja eigentlich erstmal nix escapen will...
vielleicht hat ja jemand eine Idee.
p.s.: Die Transaktion ist nötig um das Refresh durchzuführen und das ist nötig weil ich sonst teilweise alte Daten ausm Cache bekomm... (geht vielleicht anders besser, ist aber nicht wichtig)