UserLocalServiceUtil.addRoleUser和RoleLocalServiceUtil.addUserRole之间有什么区别吗?

时间:2015-12-22 06:42:47

标签: liferay liferay-6

在Liferay API中,我发现UserLocalServiceUtil.addRoleUser(long roleId, long userId)RoleLocalServiceUtil.addUserRole(long userId, long roleId)可以通过两种不同的服务用于同一目的,即为用户分配角色。纠正我错了!

进一步深入实施,揭示了以下层次结构:

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的结果是否相同,即将角色分配给用户?
    一个。如果是,那么为什么重复/重复服务呢? 湾如果没有,那有什么区别?
  2. 哪一个在性能和可访问性方面更好?
  3. 哪一个结果是运行时,没有重启服务器?

1 个答案:

答案 0 :(得分:1)

@Parkash Kumar: 是的,你是对的! 结果由两种方法给出相同,它们只是一些表中的添加条目。

检查 UserPersistenceImpl.java afterPropertiesSet()方法,这会影响 Users_Groups,Users_Orgs,Users_Roles,Users_Teams,Users_UserGroups 表,其中as afterPropertiesSet()方法 afterPropertiesSet() Groups_Roles,Users_Roles 影响该表。

您会发现LiferayDEV会改变实现和属性,LiferayDEV用于方便某些表格中的开发人员和条目。

两种方法都给你想要实现的相同的东西,但如果你使用RLSU方法,它会比ULSU方法提供快速的结果。