2015-12-22 44 views
1

在Liferay API中,我觀察到UserLocalServiceUtil.addRoleUser(long roleId, long userId)RoleLocalServiceUtil.addUserRole(long userId, long roleId)可通過兩種不同的服務用於相同的目的,即將角色分配給用戶。糾正我我錯了!UserLocalServiceUtil.addRoleUser和RoleLocalServiceUtil.addUserRole有什麼區別嗎?

進一步挖掘深進入實施揭示以下的層級:

UserLocalServiceUtil.addRoleUser > UserLocalServiceBaseImpl.addRoleUser > 
RolePersistenceImpl.addUser > TableMapperImpl.addTableMapping (roleToUserTableMapper) 

雖然,(接受兩個參數long roleIdlong userId方法)

RoleLocalServiceUtil.addUserRole > RoleLocalServiceBaseImpl.addUserRole > 
UserPersistenceImpl.addRole > TableMapperImpl.addTableMapping (userToRoleTableMapper) 

(方法接受兩個參數long userIdlong roleId

我注意到兩個實現最終都在添加了roleIduserId之間的映射,反之亦然。

不過,我有以下擔憂:

  1. 執行這兩個API導致相同的,那就是用戶分配的角色呢?
    a。如果是,那麼爲什麼這種服務重複/重複?
    b。如果不是,那有什麼區別?
  2. 哪一個在性能和可訪問性方面更好?
  3. 哪一個結果運行時,沒有重啓服務器?

回答

1

@Parkash Kumar: 是的你是對的! 結果由兩種方法給出的都是一樣的,它們只是一些表中的添加項。

檢查的afterPropertiesSet()的方法UserPersistenceImpl.java這將影響Users_Groups,Users_Orgs,Users_Roles,Users_Teams,Users_UserGroups表,其中爲的afterPropertiesSet()的afterPropertiesSet()Groups_Roles的方法,Users_Roles影響該表。

您會發現LiferayDEV的實現和屬性已經發生了變化,LiferayDEV用於使開發人員和某些表中的條目更加方便。

兩種方法都給你想要達到的東西,但如果你使用RLSU方法,它會給你快速的結果與ULSU方法比較。

+0

我也觀察到'afterPropertiesSet()'方法,並注意到相關表的影響。但是,那不是我想了解的一點。 –