i use the @Factory,but can't solve the question

my list bean generated jboss gen:
package cn.sh.guanghua.manhour.service.admin;
  | 
  | import org.jboss.seam.Component;
  | import org.jboss.seam.ScopeType;
  | import org.jboss.seam.annotations.Factory;
  | import org.jboss.seam.annotations.Name;
  | import org.jboss.seam.framework.EntityQuery;
  | 
  | import java.util.ArrayList;
  | import java.util.List;
  | import java.util.Arrays;
  | 
  | import javax.faces.model.SelectItem;
  | import javax.persistence.Query;
  | 
  | import cn.sh.guanghua.manhour.common.Constants;
  | import cn.sh.guanghua.manhour.model.admin.User;
  | import cn.sh.guanghua.manhour.service.Authenticator;
  | 
  | @Name("userList")
  | public class UserList extends EntityQuery {
  | 
  |     
  |     private long projectId = -1;
  | 
  |     /**
  |      * 
  |      */
  |     private static final long serialVersionUID = -4312632636363206451L;
  | 
  |     private static final String[] RESTRICTIONS = {
  |                     "lower(user.username) like 
concat('%',concat(lower(#{userList.user.username}),'%'))",
  |                     "lower(user.name) like 
concat('%',concat(lower(#{userList.user.name}),'%'))"};
  | 
  |     private User user = new User();
  | 
  |     @Override
  |     public String getEjbql() {
  |                     return "select user from User user where username <> 
'admin'";
  |     }
  | 
  |     @Override
  |     public Integer getMaxResults() {
  |             return 15;
  |     }
  | 
  |     public User getUser() {
  |             return user;
  |     }
  | 
  |     @Override
  |     public List<String> getRestrictions() {
  |             List<String> list = new ArrayList<String>();
  |             
  |             if (this.getUser().getState() == 0) {
  |                     list.add("lower(user.state) = #{userList.user.state}");
  |             }
  |             else if (this.getUser().getState() == 1) {
  |                     list.add("lower(user.state) = #{userList.user.state}");
  |             }
  |             else {
  |                     //do nothing
  |             }
  |             list.addAll(Arrays.asList(RESTRICTIONS));
  |             return list;
  |     }
  |     
  |     /**
  |      * @return
  |      */
  |     @SuppressWarnings("unchecked")
  |     @Factory(scope=ScopeType.CONVERSATION)
  |     public List<SelectItem> getUsersByManager() {
  |             Authenticator authenticator = (Authenticator) 
Component.getInstance("authenticator");
  |             User loginUser = authenticator.getUser();
  |             List<SelectItem> list = new ArrayList<SelectItem>();
  |             list.add(new SelectItem(loginUser.getId(), 
loginUser.getName()));
  |             
  |             Query query = getEntityManager().createQuery("select user from 
User user " +
  |                             "where user.username <> 'admin' and user.state 
= 0 " +
  |                             " and user.userManager.id=" + loginUser.getId() 
+ " and user.id <> " + loginUser.getId());
  |             List<User> users = query.getResultList();
  |             for (User user : users) {
  |                     list.add(new SelectItem(user.getId(), user.getName()));
  |             }       
  |             return list;
  |     }
  |     
  |     
  |     
  | }
  | 

my page code invoking the method:
<h:selectOneMenu id="principalId" value="#{activityList.principalId}" 
onchange="javascript:document.getElementById('weekActivity').submit();">
  |                     <f:selectItems value="#{userList.usersByManager}"/>
  |                 </h:selectOneMenu

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4096797#4096797

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4096797
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to