È venuto in qualche codice oggi che utilizza Hibernate per eseguire una query. La query utilizza un valore inviato da un modulo. Mi ha fatto incuriosire se questo tipo di codice "disinfetti" il suo input o meno.La funzione createCriteria() di Hibernate immette input?
public List<School> search(String query) {
Session session = this.getCurrentSession();
query = "%" + query + "%";
Criteria criteria = session.createCriteria(getPersistentClass());
criteria.createAlias("country", "a");
Criterion nameCriterion = Restrictions.ilike("name", query);
Criterion cityCriterion = Restrictions.ilike("city", query);
Criterion countryCriterion = Restrictions.ilike("a.name", query);
Criterion criterion = Restrictions.or(Restrictions.or(nameCriterion, cityCriterion), countryCriterion);
criteria.add(criterion);
return criteria.list();
}
È sicuro?
Accade così che stavo guardando l'SQL generato (che è quello che mi ha ricordato di controllare queste risposte) e hai assolutamente ragione. – Marvo