From 09f0f86d50933ea11eb3315e5728718e23d37dcf Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Wed, 28 Jan 2015 11:34:27 +0000
Subject: [PATCH] #2283 fix - Changed EntityManager injection to @Context
---
securis/src/main/java/net/curisit/securis/db/common/SystemParams.java | 52 +++++++++++++++++++++++++++++++++-------------------
1 files changed, 33 insertions(+), 19 deletions(-)
diff --git a/securis/src/main/java/net/curisit/securis/db/common/SystemParams.java b/securis/src/main/java/net/curisit/securis/db/common/SystemParams.java
index 88899cd..ac97ba0 100644
--- a/securis/src/main/java/net/curisit/securis/db/common/SystemParams.java
+++ b/securis/src/main/java/net/curisit/securis/db/common/SystemParams.java
@@ -3,12 +3,12 @@
import java.util.Date;
import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.transaction.Transactional;
import net.curisit.integrity.commons.Utils;
import net.curisit.securis.db.Settings;
+import net.curisit.securis.ioc.EntityManagerProvider;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -19,8 +19,8 @@
@SuppressWarnings("unused")
private static final Logger LOG = LogManager.getLogger(SystemParams.class);
- @PersistenceContext(unitName = "localdb")
- private EntityManager em;
+ @Inject
+ private EntityManagerProvider emProvider;
/**
* Returns the system parameter value for given key
@@ -109,6 +109,7 @@
* @return
*/
public String getParam(String key, String defaultValue) {
+ EntityManager em = emProvider.getEntityManager();
Settings p = em.find(Settings.class, key);
return p == null ? defaultValue : p.getValue();
}
@@ -120,19 +121,26 @@
* @param defaultValue
* @return
*/
- @Transactional
public void setParam(String key, String value) {
- Settings p = em.find(Settings.class, key);
- if (p == null) {
- p = new Settings();
- p.setKey(key);
- p.setValue(value);
- em.persist(p);
- } else {
- p.setValue(value);
- em.merge(p);
+ EntityManager em = emProvider.getEntityManager();
+ em.getTransaction().begin();
+ try {
+ Settings p = em.find(Settings.class, key);
+
+ if (p == null) {
+ p = new Settings();
+ p.setKey(key);
+ p.setValue(value);
+ em.persist(p);
+ } else {
+ p.setValue(value);
+ em.merge(p);
+ }
+ em.flush();
+ em.getTransaction().commit();
+ } finally {
+ em.getTransaction().rollback();
}
- em.flush();
}
/**
@@ -181,11 +189,17 @@
* @param key
* @return
*/
- @Transactional
public void removeParam(String key) {
- Settings p = em.find(Settings.class, key);
- if (p != null) {
- em.remove(p);
+ EntityManager em = emProvider.getEntityManager();
+ em.getTransaction().begin();
+ try {
+ Settings p = em.find(Settings.class, key);
+ if (p != null) {
+ em.remove(p);
+ }
+ em.getTransaction().commit();
+ } finally {
+ em.getTransaction().rollback();
}
}
--
Gitblit v1.3.2