activiti工做流已辦和待辦查詢sql

  最近項目中遇到一個問題,須要activiti的工做流表和業務表關聯分頁查詢,然而我對於工做流的查詢並不太熟悉,因此學習並總結以下。sql

  想看看activiti到底怎麼查詢的待認領和待辦、已辦的查詢sql,最簡單的方法時,看下工做流框架後臺打印的sql,默認是不打印的,須要改下日誌框架的配置,logback添加以下配置就能夠了:框架

    <!-- 工做流 sql日誌打印 -->
    <logger name="org.activiti.engine.impl.persistence.entity" level="DEBUG" />

添加後,觀察後臺打印的日誌就能夠發現學習

查詢待認領和待辦的sql(其中gly爲當前登陸用戶):spa

SELECT *
  FROM (SELECT A.*, ROWNUM RNUM
          FROM (SELECT DISTINCT RES.*
                  FROM ACT_RU_TASK RES
                  LEFT JOIN ACT_RU_IDENTITYLINK I ON I.TASK_ID_ = RES.ID_
                 WHERE RES.SUSPENSION_STATE_ = 1
                   AND (RES.ASSIGNEE_ = 'gly' OR
                       (RES.ASSIGNEE_ IS NULL AND
                       (I.USER_ID_ = 'gly' OR
                       I.GROUP_ID_ IN
                       (SELECT G.GROUP_ID_
                             FROM ACT_ID_MEMBERSHIP G
                            WHERE G.USER_ID_ = 'gly'))))
                 ORDER BY RES.CREATE_TIME_ DESC) A
         WHERE ROWNUM < 16)
 WHERE RNUM >= 1

已辦的sql以下:日誌

SELECT *
  FROM (SELECT A.*, ROWNUM RNUM
          FROM (SELECT DISTINCT RES.*
                  FROM ACT_HI_TASKINST RES
                 WHERE RES.ASSIGNEE_ = ?
                   AND RES.END_TIME_ IS NOT NULL
                 ORDER BY RES.END_TIME_ DESC) A
         WHERE ROWNUM < ?)
 WHERE RNUM >= ?
相關文章
相關標籤/搜索