Activiti6.0教程(8) - 使用者, 組, 使用者與組關係用法
activiti 自帶了一套使用者, 組, 以及使用者與組的關係表, 共四張表
表 | 描述 |
---|---|
act_id_group | 組 |
act_id_user | 使用者 |
act_id_info | 使用者表的擴充套件 |
act_id_membership | 使用者與組的關聯表 |
這四張表都歸IdentityService
類管
建立使用者
@Autowired private IdentityService identityService; @Test public void createGroup() { Group group = identityService.newGroup("1"); group.setName("研發部"); Group group1 = identityService.newGroup("2"); group1.setName("運營部"); Group group2 = identityService.newGroup("3"); group2.setName("商務部"); identityService.saveGroup(group); identityService.saveGroup(group1); identityService.saveGroup(group2); }
建立使用者
@Autowired private IdentityService identityService; @Test public void createUser() { User user = identityService.newUser("1"); user.setFirstName("三"); user.setLastName("張"); user.setEmail("[email protected]"); User user1 = identityService.newUser("2"); user1.setFirstName("四"); user1.setLastName("李"); user1.setEmail("[email protected]"); User user2 = identityService.newUser("3"); user2.setFirstName("五"); user2.setLastName("王"); user2.setEmail("[email protected]"); User user3 = identityService.newUser("4"); user3.setFirstName("六"); user3.setLastName("趙"); user3.setEmail("[email protected]"); identityService.saveUser(user); identityService.saveUser(user1); identityService.saveUser(user2); identityService.saveUser(user3); }
建立關聯
@Autowired private IdentityService identityService; @Test public void createUser() { // void createMembership(String userId, String groupId); // 第一個引數是userId, 第二個引數是 groupId identityService.createMembership("1", "1"); identityService.createMembership("2", "1"); identityService.createMembership("3", "2"); identityService.createMembership("4", "3"); }
原連結文:https://tomoya92.github.io/2019/04/25/activiti-user-group-membership/
刪除使用者/組
@Test public void deleteTest() { identityService.deleteUser("1"); identityService.deleteGroup("1"); }
查詢
查詢使用者
@Test public void queryUser() { List<User> users = identityService.createUserQuery().list(); for (User user : users) { System.out.println("userName: " + user.getLastName() + user.getFirstName() + " email: " + user.getEmail()); } }
查詢組
@Test public void queryGroup() { List<Group> groups = identityService.createGroupQuery().list(); for (Group group : groups) { System.out.println("id: " + group.getId() + " name: " + group.getName()); } }
關聯查詢
@Test public void queryMemberShip() { // 查詢id為1的組裡關聯的使用者 List<User> users = identityService.createUserQuery().memberOfGroup("1").list(); for (User user : users) { System.out.println("userName: " + user.getLastName() + user.getFirstName() + " email: " + user.getEmail()); } System.out.println("======================================"); // 查詢id為1的使用者所在的組 List<Group> groups = identityService.createGroupQuery().groupMember("1").list(); for (Group group : groups) { System.out.println("id: " + group.getId() + " name: " + group.getName()); } }
總結
有了這幾張表, 可以把系統中的使用者資訊儲存進去, 在進行流程的時候可以方便的通過IdentityService
類來查詢使用
貌似沒有更新的操作, 嘗試建立一個id已經存在的使用者, 然後修改內容, 再儲存它報錯了, 不過刪除使用者後, 使用者跟組的關聯關係也一塊刪除了, 這樣就方便了, 不用專門去維護關聯表了
寫部落格不易,轉載請保留原文連結,謝謝!
原文連結: