aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Knall <t.knall@datentechnik-innovation.com>2015-02-04 12:17:31 +0100
committerThomas Knall <t.knall@datentechnik-innovation.com>2015-02-04 12:17:31 +0100
commita22b7f1660560569701d086b4075192fa83ee6a8 (patch)
tree60bb596edba6acfa098e3e5df3647a8033bde3b7
parent4b6fd327b29ff84f61914f33b6361fa31441c92e (diff)
downloadmoa-id-spss-a22b7f1660560569701d086b4075192fa83ee6a8.tar.gz
moa-id-spss-a22b7f1660560569701d086b4075192fa83ee6a8.tar.bz2
moa-id-spss-a22b7f1660560569701d086b4075192fa83ee6a8.zip
Persistence issue fixed (MOAID-62)
- ProcessInstanceStore: Removed primary key column "id", set processInstanceId as new primary key column. - Renamed "save"-methods that actually save-or-update to "saveOrUpdate...".
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessEngineImpl.java12
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStore.java4
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAO.java2
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAOImpl.java5
4 files changed, 7 insertions, 16 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessEngineImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessEngineImpl.java
index eb6a29ad9..650bae44e 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessEngineImpl.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessEngineImpl.java
@@ -30,8 +30,6 @@ import at.gv.egovernment.moa.id.process.model.Transition;
/**
* Process engine implementation allowing starting and continuing processes as well as providing means for cleanup actions.
- * @author tknall
- *
*/
public class ProcessEngineImpl implements ProcessEngine {
@@ -101,7 +99,7 @@ public class ProcessEngineImpl implements ProcessEngine {
log.info("Creating process instance from process definition '{}': {}", processDefinitionId, pi.getId());
try {
- saveProcessInstance(pi);
+ saveOrUpdateProcessInstance(pi);
} catch (MOADatabaseException e) {
throw new ProcessExecutionException("Unable to persist process instance.", e);
}
@@ -133,7 +131,7 @@ public class ProcessEngineImpl implements ProcessEngine {
pi.setState(ProcessInstanceState.STARTED);
execute(pi);
- saveProcessInstance(pi);
+ saveOrUpdateProcessInstance(pi);
} catch (MOADatabaseException e) {
throw new ProcessExecutionException("Unable to load/save process instance.", e);
@@ -162,7 +160,7 @@ public class ProcessEngineImpl implements ProcessEngine {
pi.setState(ProcessInstanceState.STARTED);
execute(pi);
- saveProcessInstance(pi);
+ saveOrUpdateProcessInstance(pi);
} catch (MOADatabaseException e) {
throw new ProcessExecutionException("Unable to load/save process instance.", e);
@@ -314,7 +312,7 @@ public class ProcessEngineImpl implements ProcessEngine {
* @param processInstance The object to persist.
* @throws MOADatabaseException Thrown if an error occurs while accessing the database.
*/
- private void saveProcessInstance(ProcessInstance processInstance) throws MOADatabaseException {
+ private void saveOrUpdateProcessInstance(ProcessInstance processInstance) throws MOADatabaseException {
ProcessInstanceStore store = new ProcessInstanceStore();
ExecutionContext ctx = processInstance.getExecutionContext();
@@ -331,7 +329,7 @@ public class ProcessEngineImpl implements ProcessEngine {
store.setProcessInstanceId(processInstance.getId());
store.setProcessState(processInstance.getState());
- piStoreDao.save(store);
+ piStoreDao.saveOrUpdate(store);
}
/**
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStore.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStore.java
index c6bf86823..582f50427 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStore.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStore.java
@@ -19,11 +19,7 @@ import at.gv.egovernment.moa.id.process.ProcessInstanceState;
@Table(name = "processinstance")
public class ProcessInstanceStore {
- @Column(name = "id")
@Id
- private int id;
-
- @Column(name = "processInstanceId", unique = true, nullable = false)
private String processInstanceId;
@Column(name = "processDefinitionId", nullable = false)
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAO.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAO.java
index 999a9b82b..6f8a8c66c 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAO.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAO.java
@@ -16,7 +16,7 @@ public interface ProcessInstanceStoreDAO {
* @throws MOADatabaseException
* is thrown if a problem occurs while accessing the database.
*/
- void save(ProcessInstanceStore pIStore) throws MOADatabaseException;
+ void saveOrUpdate(ProcessInstanceStore pIStore) throws MOADatabaseException;
/**
* Returns a {@link ProcessInstanceStore}, defined by
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAOImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAOImpl.java
index 0a50afc6c..012dfe90b 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAOImpl.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAOImpl.java
@@ -1,8 +1,5 @@
package at.gv.egovernment.moa.id.process.dao;
-import java.util.Collections;
-import java.util.List;
-
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
@@ -28,7 +25,7 @@ public class ProcessInstanceStoreDAOImpl implements ProcessInstanceStoreDAO {
}
@Override
- public void save(ProcessInstanceStore pIStore) throws MOADatabaseException {
+ public void saveOrUpdate(ProcessInstanceStore pIStore) throws MOADatabaseException {
try {
MOASessionDBUtils.saveOrUpdate(pIStore);
log.debug("Store process instance with='{}' in the database.", pIStore.getProcessInstanceId());