在Liferay API中,我发现UserLocalServiceUtil.addRoleUser(long roleId, long userId)
和RoleLocalServiceUtil.addUserRole(long userId, long roleId)
可以通过两种不同的服务用于同一目的,即为用户分配角色。纠正我错了!
进一步深入实施,揭示了以下层次结构:
UserLocalServiceUtil.addRoleUser > UserLocalServiceBaseImpl.addRoleUser >
RolePersistenceImpl.addUser > TableMapperImpl.addTableMapping (roleToUserTableMapper)
(接受两个参数的方法long roleId
,long userId
)
虽然
RoleLocalServiceUtil.addUserRole > RoleLocalServiceBaseImpl.addUserRole >
UserPersistenceImpl.addRole > TableMapperImpl.addTableMapping (userToRoleTableMapper)
(接受两个参数的方法long userId
,long roleId
)
我注意到两个实现最终都在添加roleId
和userId
之间的映射,反之亦然。
但是,我有以下问题:
答案 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方法提供快速的结果。