Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » JBoss User Help »

[jboss-user] [JBoss Seam] - Entity Query problem

scott.stark@jboss.org

2007-05-07


Hi. I want to make list filtering.
On the page i have some dataTable like

| <rich:dataTable var="action" value="#{actionList.resultList}"
|            rendered="#{not empty actionList}"
|            rowClasses="rvgRowOne,rvgRowTwo" id="actionTable">
|
For filtering i have selectOneRadio and commandButton like

| <h:selectOneRadio value="#{actionManager.actionFilter}">
|               <s:convertEnum />
|                 <s:enumItem enumValue="ALL" label="All" />
|                 <s:enumItem enumValue="SENT" label="Sent" />
|                 <s:enumItem enumValue="NOT_SENT" label="Not sent" />
|             </h:selectOneRadio>
|             <h:commandButton action="#{actionManager.filterActions}" value="Filter"/>
|
For getting the list of actions i use entity query

| @Name("actionList")
| public class ActionQuery extends EntityQuery {
|
|  private static final long serialVersionUID = 4880758385999261380L;
|
|  private static final String[] RESTRICTIONS_ALL = { "" };
|  private static final String[] RESTRICTIONS_SENT = { "a.sent == 1" };
|  private static final String[] RESTRICTIONS_NOT_SENT = { "a.sent == 0" };
|
|  @Logger private Log log;
|  
|  @In(required=false)
|   private ActionListFilter actionFilter;
|
|  @In
|  private ActionManager actionManager;
|  
|  @Override
|  public String getEjbql() {
|    return "select a from Action a";
|  }
|
|  public List<String> getRestrictions() {
|    log.debug("filter bean: #0",actionManager.getActionFilter());
|    log.debug("actionFilter: #0",actionFilter);
|    if (actionFilter== null || actionFilter.equals(ActionListFilter .ALL)){
|      return new ArrayList<String>(0);
|    }
|    else if (actionFilter.equals(ActionListFilter .SENT)){
|      return Arrays.asList(RESTRICTIONS_SENT);
|    }
|    else if (actionFilter.equals(ActionListFilter .NOT_SENT)){
|      return Arrays.asList(RESTRICTIONS_NOT_SENT);
|    }
|    
|    
|    return new ArrayList<String>(0);
|
|  }
|
|  
|  
| }
|
So as you can see above i building the restrictions according to option selected by user on the form. The problem is that the line

| log.debug("actionFilter: #0",actionFilter);
|
return null, but later on the action the filter is not null (see bottom)
So the query is executed before my bean method.
I decided to get the value directly from bean but it is null.
Here are the logs

| 17:29:03,250 DEBUG [ActionQuery ] filter bean: null
| 17:29:03,250 DEBUG [ActionQuery ] actionfilter: null
| 17:29:03,250 DEBUG [ActionQuery ] filter bean: null
| 17:29:03,250 DEBUG [ActionQuery ] actionfilter: null
| 17:29:03,281 DEBUG [ActionManagerBean] actionfilter: SENT
|
For me the query is executed before form params gets updated.
In bean the value is correct.
Is this possible to create sth like this without using @Factory methods ?? (beacuse i this it should work in Factory... but may also not work)...
Anyone had similar problem or maybe know the solution

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

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4043706
_______________________________________________
jboss-user mailing list
jboss-user@(protected)
https://lists.jboss.org/mailman/listinfo/jboss-user
©2008 junlu.com - Jax Systems, LLC, U.S.A.