J'ai un projet basé sur le framework MVC (Spring Web Model-View-Controller). La version du framework MVC (Spring-model-view-controller) est 3.2.8.Le langage de requête Java Persistence - LIKE
J'ai cette méthode dans mon DAO
@Override
public List<Application> findByQuickSearch(String searchString) {
final StringBuilder queryString = new StringBuilder(" select app from Application app where upper (ticket_id) like :searchString or upper (id) like :searchString ");
queryString.append(" and app.status != " + Status.DRAFT.ordinal());
queryString.append(" order by app.submissionTime desc ");
try {
final Query query = getEntityManager().createQuery(queryString.toString());
searchString = searchString.replace("!", "!!")
.replace("%", "!%")
.replace("_", "!_")
.replace("[", "![")
.trim()
.toUpperCase();
System.out.println ("searchString -----> " + searchString);
query.setParameter ("searchString", searchString);
return query.getResultList();
} catch (RuntimeException re) {
log.error("findByCompetentBodyAndStatus failed", re);
throw re;
}
}
Mais je me suis aperçu que la requête ne fait pas identiques, mais égale
printemps Je cherche est "iOS/032/027"
, ok pour "iOS/032/027"
, mais pas pour "iOS/"
ou "027"