At times during the development, we might end up defining the custom fields on the liferay default entities(User, Organization etc.,) in order to squeeze in the custom attributes that the project requirements dictates. Once they are defined (in the control panel), we can use the below methods to retrieve them
Method 1:
First get the entity here in our example User by using one of the relevant API methods
User user = UserLocalServiceUtil.getUserById(userid);
For setting the value
user.getExpandoBridge().setAttribute(IConstants.EXPANDO_USER_JOB_DESCRIPTION, "some desc" );
For retrieving the value
user.getExpandoBridge().getAttribute(IConstants.EXPANDO_USER_JOB_DESCRIPTION);
Method 2:
Some times due to some security restrictions (from where you access this method) the above method doesn't work.In which case we end up using the Expoandos API to set and get the values from the custom attributes
User user = UserLocalServiceUtil.getUserById(userid);
Method 1:
First get the entity here in our example User by using one of the relevant API methods
User user = UserLocalServiceUtil.getUserById(userid);
For setting the value
user.getExpandoBridge().setAttribute(IConstants.EXPANDO_USER_JOB_DESCRIPTION, "some desc" );
For retrieving the value
user.getExpandoBridge().getAttribute(IConstants.EXPANDO_USER_JOB_DESCRIPTION);
Method 2:
Some times due to some security restrictions (from where you access this method) the above method doesn't work.In which case we end up using the Expoandos API to set and get the values from the custom attributes
User user = UserLocalServiceUtil.getUserById(userid);
ExpandoTable table = ExpandoTableLocalServiceUtil.g etTable(user.etCompanyId(),User.class.getName(), ExpandoTableConstants.DEFAULT_ TABLE_NAME);
ExpandoColumn column = ExpandoColumnLocalServiceUtil. getColumn(user. getCompanyId(),User.class.getName(), table.getName(), "Custom Field Key" );
String strSsouserScreenNamePrefix = ExpandoValueLocalServiceUtil.g etData(user. getCompanyId(),User.class.getName(), table.getName(), column.getName(), user. getUserId(), StringPool.BLANK);
No comments:
Post a Comment