📄 hibernateprocess.java
字号:
/*
* Created on 2004-10-17 TODO To change the template for this generated file go to Window - Preferences - Java - Code
* Style - Code Templates
*/
package com.hongsoft.agile.workflow;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.type.StringType;
import com.hongsoft.agile.AgileActivity;
import com.hongsoft.agile.AgileException;
import com.hongsoft.agile.pojo.ProcessInstance;
/**
* @author hongsoft.com TODO To change the template for this generated type comment go to Window - Preferences - Java -
* Code Style - Code Templates
*/
public class HibernateProcess {
/**
* 插入一个对象
*
* @param session
* @param ai
* @throws HibernateException
*/
public void insert(Session session, ProcessInstance pi) throws HibernateException {
session.save(pi);
}
/**
* 获取
*
* @param session
* @param processInsId
* @return
* @throws HibernateException
*/
public ProcessInstance getByProcessInsId(Session session, String processInsId) throws HibernateException {
SQLQuery query = session
.createSQLQuery("SELECT a FROM ProcessInstance as a WHERE a.processInsId=:processInsId");
query.setParameter("processInsId", processInsId, new StringType());
List list = query.list();
if (list != null && list.size() != 0)
return (ProcessInstance) list.get(0);
return null;
}
/**
* 得到流程的最大实例号
*
* @param session
* @param processDefId
* @return
* @throws HibernateException
*/
public static int getMaxProcessInsId(Session session, String processDefId) throws HibernateException {
String insId;
List processInsList = (new HibernateActivity()).getByProcessDefId(session, processDefId);
if (processInsList == null || processInsList.size() == 0)
return 0;
else
insId = ((AgileActivity) processInsList.get(processInsList.size() - 1)).getProcessInsId();
return Util.getIntIdByInsId(insId);
}
/**
* 开始一个是子流程的流程,它肯定是从一个活动定义开始的 这里的先后顺序不能发生改变!
*
* @param session
* @param activityDefId
* @throws HibernateException
*/
public void startSubProcess(Session session, String parentProcessInsId, String parentActivityInsId,
String subProcessDefId) throws HibernateException, AgileException {
// 1)向ProcessInstance表中插入数据
ProcessInstance pi = new ProcessInstance();
pi.setParentProcessInsId(parentProcessInsId);
pi.setParentActivityInsId(parentActivityInsId);
pi.setProcessInsId(subProcessDefId + "_" + (getMaxProcessInsId(session, subProcessDefId) + 1));
// pi.setProcessInsId(subProcessDefId+"_"+getMaxProcessInsId(session,subProcessDefId));
(new HibernateProcess()).insert(session, pi);
// 2)启动流程
FacadeProcess.startProcess(session, subProcessDefId);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -