Updated Branches: refs/heads/master 456a9f50c -> aeecd80ec
[CAMEL-7126] Removed more JpaTemplate dependencies. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/aeecd80e Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/aeecd80e Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/aeecd80e Branch: refs/heads/master Commit: aeecd80ec9faf3abd85dfb9cb0693057978a0483 Parents: 456a9f5 Author: Henryk Konsek <hekon...@gmail.com> Authored: Thu Jan 16 21:21:50 2014 +0100 Committer: Henryk Konsek <hekon...@gmail.com> Committed: Thu Jan 16 21:21:50 2014 +0100 ---------------------------------------------------------------------- .../camel/bam/model/ProcessDefinition.java | 32 ++++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/aeecd80e/components/camel-bam/src/main/java/org/apache/camel/bam/model/ProcessDefinition.java ---------------------------------------------------------------------- diff --git a/components/camel-bam/src/main/java/org/apache/camel/bam/model/ProcessDefinition.java b/components/camel-bam/src/main/java/org/apache/camel/bam/model/ProcessDefinition.java index 67bf267..abad982 100644 --- a/components/camel-bam/src/main/java/org/apache/camel/bam/model/ProcessDefinition.java +++ b/components/camel-bam/src/main/java/org/apache/camel/bam/model/ProcessDefinition.java @@ -23,9 +23,9 @@ import java.util.Map; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; import javax.persistence.Table; import org.apache.camel.bam.QueryUtils; -import org.apache.camel.util.CastUtils; import org.apache.camel.util.ObjectHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -74,18 +74,24 @@ public class ProcessDefinition extends EntitySupport { } public static ProcessDefinition findOrCreateProcessDefinition(JpaTemplate template, String processName) { - Map<String, Object> params = new HashMap<String, Object>(1); - params.put("processName", processName); - - List<ProcessDefinition> list = CastUtils.cast(template.findByNamedParams("select x from " + QueryUtils.getTypeName(ProcessDefinition.class) - + " x where x.name = :processName", params)); - if (!list.isEmpty()) { - return list.get(0); - } else { - ProcessDefinition answer = new ProcessDefinition(); - answer.setName(processName); - template.persist(answer); - return answer; + EntityManager entityManager = null; + try { + entityManager = resolveEntityManager(template.getEntityManagerFactory()); + String definitionsQuery = "select x from " + QueryUtils.getTypeName(ProcessDefinition.class) + + " x where x.name = :processName"; + List<ProcessDefinition> list = entityManager.createQuery(definitionsQuery, ProcessDefinition.class). + setParameter("processName", processName). + getResultList(); + if (!list.isEmpty()) { + return list.get(0); + } else { + ProcessDefinition answer = new ProcessDefinition(); + answer.setName(processName); + template.persist(answer); + return answer; + } + } finally { + closeNonTransactionalEntityManager(entityManager); } } }