此方案可以最简单的方式实现工作流中自定义用户数据管理模块,实现思路放弃使用系列表:ACT_ID_,创建同名的视图。
DROP VIEW IF EXISTS act_id_membership;
DROP VIEW IF EXISTS act_id_user;
DROP VIEW IF EXISTS act_id_group;
CREATE or replace VIEW act_id_user(ID_,REV_,FIRST_,LAST_,EMAIL_,PWD_,PICTURE_ID_ ,CONSTRAINT id_pk PRIMARY KEY(ID_) RELY DISABLE NOVALIDATE) AS
SELECT
TO_CHAR(au.login_name) AS ID_,
0 AS REV_,
to_char(au.user_name_cn) AS FIRST_,
'' AS LAST_,
to_char(au.email) AS EMAIL_,
to_char(au.PASSWORD) AS PWD_,
'' AS PICTURE_ID_
FROM base_user au;
CREATE VIEW act_id_group
AS
SELECT ar.name AS ID_,
NULL AS REV_,
ar.name AS NAME_,
'assignment' AS TYPE_
FROM s_role ar;
CREATE VIEW act_id_membership
AS
SELECT (SELECT u.username FROM s_user u WHERE u.id=ur.user_id) AS USER_ID_,
(SELECT r.name FROM s_role r WHERE r.id=ur.role_id) AS GROUP_ID_
FROM s_user_role ur;
注意事项:
1.创建视图必须删除引擎自动创建的ACT_ID_*表,否则不能创建视图。
2.创建的视图要保证数据类型一致,例如用户的ACT_ID_MEMBERSHIP表的两个字段都是字符型,一般系统中都是用NUMBER作为用户、角色的主键类型,所以创建视图的时候要把数字类型转换为字符型。
3.修改引擎配置<property name="dbIdentityUsed" value="false"/>