参考;一纯粹的paranoid的博客 ,网址:http://blog.csdn.net/paranoid_android/article/details/9240225
对于Group对象而说,其有属性classpk和classnameid属性,当classnameid为10001时,值为com.liferay.portal.model.Group时,其为Group对象。
此时classpk=groupid.
同理:如果自定义了User的值,且添加了一个自定义字段"Height',起" ,其 “Height” 属性值为180.
- String customAttributeName="height"
- String customAttributeValue="180"
- long classNameId = ClassNameLocalServiceUtil.getClassNameId(User.class);
- long companyId = PortalUtil.getDefaultCompanyId();
- List<ExpandoValue> values = ExpandoValueLocalServiceUtil.getColumnValues(companyId, classNameId, ExpandoTableConstants.DEFAULT_TABLE_NAME, customAttributeName,customAttributeValue, -1, -1);
- //create an arraylist to store user objects
- List<User> users = new ArrayList<User>();
- //temp user object
- User user;
- //iterate through list of ExpandoValues and for each
- // element try to find corresponding user object
- for (int i = 0; i < values.size(); i++) {
- long userId = values.get(i).getClassPK();
- try{
- user = UserLocalServiceUtil.getUser(userId);
- users.add(user)
- }catch(NoSuchUserException e ){
- user with this primary key was not found in DB .....
- }//
其他:Group中有classNameid和classpk,如果某条记录的这两个列的值为空,则该条记录指的是一个社区。如果className的值是com.liferay.portal.model.User,
则该条记录为一个私有的用户社区(只允许Power Users)。如果className 的值是com.liferay.portal.model.Organization,则这条记录表示了一个组织(Organization
)或地区(Location)如果className 的值是com.liferay.portal.model.UserGroup则表示这条记录记录的是一个UserGroup(用户组)。可以说:组(Group)Organization和Location已经UserGroup的集合。存在组(Group)用于记录Organizations/Locations 和UserGroups的原因在于:这样可以简化其他实体(比如权限(permissions)和角色(
role))同用户(Users)之间的关系。
1793

被折叠的 条评论
为什么被折叠?



