たとえば。私は持っている:
Input:
ArrayList<Integer> idlist
String nameText
String q = "DELETE FROM myTable AS a WHERE a.name LIKE '%' || :name || '%' OR a.id IN (:idlist)";
Query query = entityManager.createQuery(q);
query.setParameter("name", nameText);
query.setParameter("idlist", idlist);
query.executeUpdate();
上記のコード スニペットは、SQL インジェクションの影響を受けやすいでしょうか? もう 1 つ質問があります。上記のクエリを作成する方法と、条件によってクエリを作成する方法との間に違いがあります。
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Country> q = cb.createQuery(Country.class);
Root<Country> c = q.from(Country.class);
q.select(c);
それぞれに利点はありますか?