2015-12-22 128 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()'方法,并注意到相关表的影响。但是,那不是我想了解的一点。 –