org.jbpm.task.service.persistence
Class TaskPersistenceManager

java.lang.Object
  extended by org.jbpm.task.service.persistence.TaskPersistenceManager

public class TaskPersistenceManager
extends Object

From the Hibernate docs:

 An EntityManager is an inexpensive, non-threadsafe object that 
 should be used once, for a single business process, a single unit 
 of work, and then discarded. An EntityManager will not obtain 
 a JDBC Connection (or a Datasource) unless it is needed, so 
 you may safely open and close an EntityManager even if you are 
 not sure that data access will be needed to serve a particular request.
 

This class is a wrapper around the entity manager that handles all persistence operations. This way, the persistence functionality can be isolated from the human-task server functionality.

This class is only mean to be used in one thread: with every request handled by the human-task server, a TaskServiceSession is created with an instance of this class. Once the request has been handled, the TaskServiceSession instance and the TaskPersistenceManager instance are disposed of.


Field Summary
static String FIRST_RESULT
           
static String MAX_RESULTS
           
 
Method Summary
static HashMap<String,Object> addParametersToMap(Object... parameterValues)
           
 boolean beginTransaction()
           
 javax.persistence.Query createNewQuery(String queryString)
          It is strongly suggested that you only use this method within a transaction!!
 void deleteEntity(Object entity)
           
 void dispose()
           
 void endPersistenceContext()
           
 void endTransaction(boolean txOwner)
           
 Object findEntity(Class<?> entityClass, Object primaryKey)
           
 List<DeadlineSummary> getUnescalatedDeadlines()
          Special onetime method
 List<DeadlineSummary> getUnescalatedDeadlinesList()
           
 boolean groupExists(String groupId)
           
 boolean isSharedEntityManager()
           
 Object queryInTransaction(String queryName)
           
 List<TaskSummary> queryTasksWithUserIdAndLanguage(String queryName, String userId, String language)
           
 List<TaskSummary> queryTasksWithUserIdGroupsAndLanguage(String queryName, String userId, List<String> groupIds, String language)
           
 List<TaskSummary> queryTasksWithUserIdStatusAndLanguage(String queryName, String userId, List<Status> status, String language)
           
 Object queryWithParametersInTransaction(String queryName, Map<String,Object> params)
           
 Object queryWithParametersInTransaction(String queryName, Map<String,Object> params, boolean singleResult)
          This method runs a query within a transaction and returns the result.
 void rollBackTransaction(boolean txOwner)
           
 void saveEntity(Object entity)
           
 void setTaskStatusInTransaction(Object taskId, Status taskStatus)
          Special onetime method
 void setUseSharedEntityManager(boolean sharedEntityManager)
           
 boolean userExists(String userId)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FIRST_RESULT

public static final String FIRST_RESULT
See Also:
Constant Field Values

MAX_RESULTS

public static final String MAX_RESULTS
See Also:
Constant Field Values
Method Detail

setUseSharedEntityManager

public void setUseSharedEntityManager(boolean sharedEntityManager)

isSharedEntityManager

public boolean isSharedEntityManager()

beginTransaction

public boolean beginTransaction()

endTransaction

public void endTransaction(boolean txOwner)

rollBackTransaction

public void rollBackTransaction(boolean txOwner)

dispose

public void dispose()

endPersistenceContext

public void endPersistenceContext()

getUnescalatedDeadlines

public List<DeadlineSummary> getUnescalatedDeadlines()
Special onetime method

Returns:

setTaskStatusInTransaction

public void setTaskStatusInTransaction(Object taskId,
                                       Status taskStatus)
Special onetime method

Parameters:
taskId -
taskStatus -

getUnescalatedDeadlinesList

public List<DeadlineSummary> getUnescalatedDeadlinesList()

findEntity

public Object findEntity(Class<?> entityClass,
                         Object primaryKey)

deleteEntity

public void deleteEntity(Object entity)

saveEntity

public void saveEntity(Object entity)

createNewQuery

public javax.persistence.Query createNewQuery(String queryString)
It is strongly suggested that you only use this method within a transaction!!

PostgreSQL and DB2 are 2 databases which, depending on your situation, will probably require this.

Parameters:
queryString - The JPQL query string to execute.
Returns:
The result of the query.

userExists

public boolean userExists(String userId)

groupExists

public boolean groupExists(String groupId)

queryTasksWithUserIdAndLanguage

public List<TaskSummary> queryTasksWithUserIdAndLanguage(String queryName,
                                                         String userId,
                                                         String language)

queryTasksWithUserIdStatusAndLanguage

public List<TaskSummary> queryTasksWithUserIdStatusAndLanguage(String queryName,
                                                               String userId,
                                                               List<Status> status,
                                                               String language)

queryTasksWithUserIdGroupsAndLanguage

public List<TaskSummary> queryTasksWithUserIdGroupsAndLanguage(String queryName,
                                                               String userId,
                                                               List<String> groupIds,
                                                               String language)

queryWithParametersInTransaction

public Object queryWithParametersInTransaction(String queryName,
                                               Map<String,Object> params,
                                               boolean singleResult)
This method runs a query within a transaction and returns the result. This logic is unfortunately duplicated in TaskServiceSession.doOperationInTransaction(org.jbpm.task.service.TaskServiceSession.TransactedOperation). If you change the logic here, please make sure to change the logic there as well (and vice versa).

Parameters:
queryName -
params -
Returns:

queryWithParametersInTransaction

public Object queryWithParametersInTransaction(String queryName,
                                               Map<String,Object> params)

queryInTransaction

public Object queryInTransaction(String queryName)

addParametersToMap

public static HashMap<String,Object> addParametersToMap(Object... parameterValues)


Copyright © 2001-2012 JBoss by Red Hat. All Rights Reserved.