[jboss-user] [JBoss Seam] - Re: EntityQuery bug

rmemoria do-not-reply at jboss.com
Tue Sep 11 18:04:37 EDT 2007


Another bug just found.

The Refresh method doesn't update changes in the Ejbql property.

My EntityQuery has a condition that can't be included as a restriction. It is:


  | @Name("mdrCases")
  | public class MdrCasesQuery extends EntityQuery {
  | 
  | private boolean allCases;
  | 
  | @Override
  | public String getEjbql() {
  | 	String cond = allCases? "": " where (c.endingTreatmentDate is null)";
  | 	
  | 	return "from MdrCase c".concat(cond);
  | }

Since it doesn't contain any EL expression, it can't be included as a restriction. So the condition is placed on the fly when the user clicks a button to refresh the page:

	<s:decorate template="/layout/edit.xhtml">
  | 		<ui:define name="label">#{messages['patients.allcases']}:</ui:define>
  | 		<h:selectBooleanCheckbox value="#{mdrCases.allCases}"></h:selectBooleanCheckbox>
  | 	</s:decorate>
  | 	
  | 		<h:commandButton action="#{mdrCases.refresh}" value="#{messages['form.search']}" styleClass="button" />
  | 

The problem is that after the refresh method is called the Ejbql is not rebuild.

I saw that in Query.refresh method, if I make a change like:

   public void refresh()
  |    {
  |       clearDataModel();
  | 
  |      // INCLUDE THIS LINE HERE
  |      parsedEjbql = null;
  |    }

recompile and regenerate SEAM, it works just fine.


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

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4083202



More information about the jboss-user mailing list