DELTASPIKE-965 Use query parameter to properly interpolate ID values Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/b11d8174 Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/b11d8174 Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/b11d8174
Branch: refs/heads/master Commit: b11d8174bf4a090db6b78666f06aeab04555b37b Parents: e56035a Author: Harald Wellmann <[email protected]> Authored: Mon Jul 27 18:07:31 2015 +0200 Committer: Harald Wellmann <[email protected]> Committed: Mon Jul 27 18:07:31 2015 +0200 ---------------------------------------------------------------------- .../data/impl/handler/CdiQueryInvocationContext.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/deltaspike/blob/b11d8174/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryInvocationContext.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryInvocationContext.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryInvocationContext.java index b0b4c67..0ca1cf2 100644 --- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryInvocationContext.java +++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryInvocationContext.java @@ -304,13 +304,14 @@ public class CdiQueryInvocationContext implements QueryInvocationContext private boolean countCheck(Object entity) { - StringBuilder sql = new StringBuilder("SELECT COUNT(e) FROM " + getEntityClass() + StringBuilder jpql = new StringBuilder("SELECT COUNT(e) FROM " + getEntityClass() .getSimpleName() + " e "); - sql.append("WHERE e."); - sql.append(EntityUtils.primaryKey(getEntityClass()).getName()); - sql.append(" = " + EntityUtils.primaryKeyValue(entity)); + jpql.append("WHERE e."); + jpql.append(EntityUtils.primaryKey(getEntityClass()).getName()); + jpql.append(" = :id"); - final Query query = entityManager.createQuery(sql.toString()); + final Query query = entityManager.createQuery(jpql.toString()); + query.setParameter("id", EntityUtils.primaryKeyValue(entity)); final Long result = (Long) query.getSingleResult(); if (Long.valueOf(0).equals(result)) {
