JBPM 3 DAO 층 의 디자인.

jbpm 3 자체 가 많은 API 를 제공 하고 실 체 를 직접 조작 할 수 있 으 며 패키지 구 조 는 대상 으로 계획 합 니 다.jbpm 를 확장 하고 퀘 스 트 인 스 턴 스 를 계승 하 며 다른 실 체 를 추가 하면 실체 에 대한 추가, 삭제 와 수정 이 빠 질 수 없습니다.데 이 터 를 응용 프로그램 (J2EE) 에 되 돌려 주 려 면 인터페이스, DAO, DTO 등 을 정의 해 야 합 니 다.이전 항목 은 이 블록 을 구분 하지 않 았 습 니 다. 인 스 턴 스 작업 에 DAO 를 사용 하지 않 고 클래스 와 필요 한 방법 을 정의 한 다음 JbpmContext 또는 Session 으로 전 송 됩 니 다.

public class WorkflowUtil {
	public List<ProcessInstance> findProcessInstancesByProcessDefinition(JbpmContext jbpmContext, String accountName) {
		Session session = jbpmContext.getSession();
		String ql = "SELECT processInstance
" + "FROM org.jbpm.graph.exe.ProcessInstance processInstance
" + "WHERE processInstance.processDefinition = :processDefinition
" + "AND processInstance.end IS NULL
"; session.createQuery(ql); Query query = session.createQuery(ql).setParameter("processDefinition", processDefinition); return query.list(); }

사실 Interface 를 사용 하면 좋 은 점 이 많 기 때문에 DAO 층 을 정의 합 니 다.모든 방법 에 JbpmContext / ession 이 있 고 우아 하지 않 기 때문에 파 라 메 터 를 간소화 합 니 다.... 와 같다

public class WorkflowDaoBean implements WorkflowDao {

	private Session session;
	
	private final static Log log = LogFactory.getLog(WorkflowDaoBean.class);
	
	@SuppressWarnings("deprecation")
	public WorkflowDaoBean(){
		JbpmContext currentJbpmContext = JbpmContext.getCurrentJbpmContext();
	    if (currentJbpmContext!=null) {
	    	session = currentJbpmContext.getSession();
	    } else {
	    	log.info("      JbpmContext。");
	    }
	}
	
	public WorkflowDaoBean(Session session){
		this.session = session;
	}
	
	@SuppressWarnings("unchecked")
	public List<ProcessInstance> findProcessInstancesByProcessDefinition(ProcessDefinition processDefinition) {
		String ql = "SELECT processInstance
" + "FROM org.jbpm.graph.exe.ProcessInstance processInstance
" + "WHERE processInstance.processDefinition = :processDefinition
" + "AND processInstance.end IS NULL
"; session.createQuery(ql); Query query = session.createQuery(ql).setParameter("processDefinition", processDefinition); return query.list(); }

좋은 웹페이지 즐겨찾기