persistenceservicehibernateimpl.java
来自「Fire-Workflow-Engine-All-In-One-20090208」· Java 代码 · 共 484 行 · 第 1/2 页
JAVA
484 行
public Integer findTheLatestVersionOfWorkflowDefinition(final String processId) {
//取得当前最大的version值
Integer result = (Integer) this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session arg0) throws HibernateException, SQLException {
Query q = arg0.createQuery("select max(m.version) from WorkflowDefinition m");
Object obj = q.uniqueResult();
if (obj != null) {
Integer latestVersion = (Integer) obj;
return latestVersion;
} else {
return null;
}
}
});
return result;
}
public WorkflowDefinition findWorkflowDefinitionById(String id) {
return (WorkflowDefinition) this.getHibernateTemplate().get(WorkflowDefinition.class, id);
}
public WorkflowDefinition findWorkflowDefinitionByProcessIdAndVersion(final String processId, final int version) {
WorkflowDefinition workflowDef = (WorkflowDefinition) this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session arg0) throws HibernateException, SQLException {
Criteria c = arg0.createCriteria(WorkflowDefinition.class);
c.add(Expression.eq("processId", processId));
c.add(Expression.eq("version", version));
return (WorkflowDefinition) c.uniqueResult();
}
});
return workflowDef;
}
public WorkflowDefinition findLatestVersionOfWorkflowDefinitionByProcessId(String processId) {
Integer latestVersion = this.findTheLatestVersionOfWorkflowDefinition(processId);
return this.findWorkflowDefinitionByProcessIdAndVersion(processId, latestVersion);
}
public List<WorkflowDefinition> findWorkflowDefinitionByProcessId(final String processId) {
List result = (List) this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session arg0) throws HibernateException, SQLException {
Criteria c = arg0.createCriteria(WorkflowDefinition.class);
c.add(Expression.eq("processId", processId));
return c.list();
}
});
return result;
}
public List<WorkflowDefinition> findAllLatestVersionOfWorkflowDefinition() {
List result = (List) this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session arg0) throws HibernateException, SQLException {
String hql = "select distinct model.processId from WorkflowDefinition model ";
Query query = arg0.createQuery(hql);
List processIdList = query.list();
List _result = new Vector<WorkflowDefinition>();
for (int i = 0; i < processIdList.size(); i++) {
WorkflowDefinition wfDef = findLatestVersionOfWorkflowDefinitionByProcessId((String) processIdList.get(i));
_result.add(wfDef);
}
return _result;
}
});
return result;
}
public List<IWorkItem> findTodoWorkItems(final String actorId) {
return findTodoWorkItems(actorId,null);
}
public List<IWorkItem> findTodoWorkItems(final String actorId, final String processInstanceId) {
List result = (List) this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session arg0) throws HibernateException, SQLException {
Criteria criteria = arg0.createCriteria(WorkItem.class);
Criterion cri1 = Expression.eq("state", new Integer(0));
Criterion cri2 = Expression.eq("state", new Integer(1));
Criterion cri_or = Expression.or(cri1, cri2);
if (actorId!=null && !actorId.trim().equals("")){
Criterion cri0 = Expression.eq("actorId", actorId);
Criterion cri_and = Expression.and(cri0, cri_or);
criteria.add(cri_and);
}else{
criteria.add(cri_or);
}
criteria.createAlias("taskInstance", "taskInstance");
if (processInstanceId != null && !processInstanceId.trim().equals("")) {
criteria .add(Expression.eq("taskInstance.processInstanceId",processInstanceId));
}
return criteria.list();
}
});
return result;
}
public List<IWorkItem> findTodoWorkItems(final String actorId, final String processId, final String taskId) {
List result = (List) this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session arg0) throws HibernateException, SQLException {
Criteria criteria = arg0.createCriteria(WorkItem.class);
Criterion cri1 = Expression.eq("state", new Integer(0));
Criterion cri2 = Expression.eq("state", new Integer(1));
Criterion cri_or = Expression.or(cri1, cri2);
if (actorId!=null && !actorId.trim().equals("")){
Criterion cri0 = Expression.eq("actorId", actorId);
Criterion cri_and = Expression.and(cri0, cri_or);
criteria.add(cri_and);
}else{
criteria.add(cri_or);
}
criteria.createAlias("taskInstance", "taskInstance");
if (processId != null && !processId.trim().equals("")) {
criteria .add(Expression.eq("taskInstance.processId",processId));
}
if (taskId != null && !taskId.trim().equals("")) {
criteria.add(Expression.eq("taskInstance.taskId", taskId));
}
return criteria.list();
}
});
return result;
}
public List<IWorkItem> findHaveDoneWorkItems(final String actorId) {
return findHaveDoneWorkItems(actorId,null);
}
public List<IWorkItem> findHaveDoneWorkItems(final String actorId, final String processInstanceId) {
List result = (List) this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session arg0) throws HibernateException, SQLException {
Criteria criteria = arg0.createCriteria(WorkItem.class);
Criterion cri1 = Expression.eq("state", new Integer(2));
Criterion cri2 = Expression.eq("state", new Integer(-1));
Criterion cri_or = Expression.or(cri1, cri2);
if (actorId!=null && !actorId.trim().equals("")){
Criterion cri0 = Expression.eq("actorId", actorId);
Criterion cri_and = Expression.and(cri0, cri_or);
criteria.add(cri_and);
}else{
criteria.add(cri_or);
}
criteria.createAlias("taskInstance", "taskInstance");
if (processInstanceId != null && !processInstanceId.trim().equals("")) {
criteria .add(Expression.eq("taskInstance.processInstanceId",processInstanceId));
}
return criteria.list();
}
});
return result;
}
public List<IWorkItem> findHaveDoneWorkItems(final String actorId, final String processId, final String taskId) {
List result = (List) this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session arg0) throws HibernateException, SQLException {
Criteria criteria = arg0.createCriteria(WorkItem.class);
Criterion cri1 = Expression.eq("state", new Integer(2));
Criterion cri2 = Expression.eq("state", new Integer(-1));
Criterion cri_or = Expression.or(cri1, cri2);
if (actorId!=null && !actorId.trim().equals("")){
Criterion cri0 = Expression.eq("actorId", actorId);
Criterion cri_and = Expression.and(cri0, cri_or);
criteria.add(cri_and);
}else{
criteria.add(cri_or);
}
criteria.createAlias("taskInstance", "taskInstance");
if (processId != null && !processId.trim().equals("")) {
criteria .add(Expression.eq("taskInstance.processId",processId));
}
if (taskId != null && !taskId.trim().equals("")) {
criteria.add(Expression.eq("taskInstance.taskId", taskId));
}
return criteria.list();
}
});
return result;
}
public void deleteWorkItemsInInitializedState(final String taskInstanceId) {
this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session arg0) throws HibernateException, SQLException {
String hql = "delete from org.fireflow.engine.impl.WorkItem as model where model.taskInstance.id=? and model.state=0";
Query query = arg0.createQuery(hql);
query.setString(0, taskInstanceId);
return query.executeUpdate();
}
});
}
/*
public List<IWorkItem> findHaveDoneWorkItems(final String processInstanceId,final String activityId){
if (processInstanceId==null || processInstanceId.trim().equals("")||
activityId==null || activityId.trim().equals("")){
return null;
}
Object result = this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session arg0) throws HibernateException, SQLException {
String hql = " from org.fireflow.engine.impl.WorkItem as model where model.taskInstance.processInstance.id=? and model.activityId=? and model.state=2";
Query query = arg0.createQuery(hql);
query.setString(0, processInstanceId);
query.setString(1, activityId);
return query.list();
}
});
return (List)result;
}
*/
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?