Hen*_*aul 5 java liferay dynamicquery liferay-6
我是Liferay开发的新手,所以请随时指出我是否完全采用了错误的方法.
我正在尝试获取某个组内所有用户的DynamicQuery对象(我将使用此对象进一步过滤我将针对留言板执行的另一个查询).该User接口似乎有一个roleIds,我可能能够使用的财产,因为我已经知道roleId我很感兴趣,但我无法找到查询是否正确的方法roleIds 包含一定的价值.
关于我想做什么的任何想法?
PS:我想有确切的SQL查询,我可以直接问,但我宁愿使用Liferay的自己的连接池,而无需做一些奇怪的ext工程啄.
您不需要DynamicQuery.这些是您在Dirk指出的类中寻找的方法:
long[] UserServiceUtil.getRoleUserIds(long roleId)
Run Code Online (Sandbox Code Playgroud)
要么
long[] UserLocalServiceUtil.getRoleUserIds(long roleId)
List<User> UserLocalServiceUtil.getRoleUsers(long roleId)
Run Code Online (Sandbox Code Playgroud)
请记住XXXLocalServiceUtil类中的方法不检查当前用户的权限.
编辑:如果您正在寻找在给定社区中具有给定角色的所有用户:
long companyId= _X_; //Perhaps CompanyThreadLocal.getCompanyId() if you don't have it anywhere else?
Role role=RoleLocalServiceUtil.getRole(companyId, "Example Role");
Group group=GroupLocalServiceUtil.getGroup(companyId, "Example Community");
List<UserGroupRole> userGroupRoles = UserGroupRoleLocalServiceUtil.
getUserGroupRolesByGroupAndRole(groupId, role.getRoleId());
for(UserGroupRole userGroupRole:userGroupRoles){
User oneUser=userGroupRole.getUser();
}
Run Code Online (Sandbox Code Playgroud)
访问生命周期自己的对象的最简单方法是使用XXXServiceUtil类(例如RoleServiceUtil.getUserRoles(userId)).因此,您很少直接处理任何SQL.无论是RoleServiceUtil或者UserServiceUtil可能拥有你需要的东西.
| 归档时间: |
|
| 查看次数: |
14314 次 |
| 最近记录: |