Parameters restored in EntityQuery with RESTRICTIONs
sudeval Jun 6, 2008 7:55 PMHi,
Why my parameters restored in my EntityQuery with restriction ?
...
<h:form id="formBuscaProjeto" styleClass="edit">
<rich:simpleTogglePanel label="Parâmetros da Busca" switchType="ajax">
<s:decorate template="layout/display.xhtml">
<ui:define name="label">Título:</ui:define>
<h:inputText id="tituloProjetoParam" value="#{projetoList.projeto.titulo}"/>
</s:decorate>
<s:decorate template="layout/display.xhtml">
<ui:define name="label">Período Execução:</ui:define>
<h:inputText value="#{projetoList.projeto.dataPrevisaoInicio}">
<f:convertDateTime type="date" pattern="dd/MM/yyyy"/>
</h:inputText>
</s:decorate>
<s:decorate template="layout/display.xhtml">
<ui:define name="label">Status:</ui:define>
<h:selectOneMenu value="#{projetoList.projeto.statusProjeto}">
<s:selectItems var="statusProjeto"
value="#{statusProjetoList.resultList}"
label="#{statusProjeto.nome}"
noSelectionLabel="selecione um status..."/>
<s:convertEntity/>
</h:selectOneMenu>
</s:decorate>
</rich:simpleTogglePanel>
<div class="actionButtons">
<h:commandButton id="buscar" value="Buscar" action="/projetoList.xhtml"/>
</div>
</h:form>
<rich:panel>
<f:facet name="header">Lista de Projetos</f:facet>
<div class="results">
<h:dataTable id="projetoList" var="projeto"
value="#{projetoList.resultList}"
rendered="#{not empty projetoList.resultList}">
<h:column>
<f:facet name="header">Unidade</f:facet>
inserir unidade op.
</h:column>
<h:column>
<f:facet name="header">Programa</f:facet>
#{projeto.enquadramentoProjeto.programa.nome}
</h:column>
<h:column>
<f:facet name="header">Título</f:facet>
<s:link id="projeto"
value="#{projeto.titulo}"
view="/projeto.xhtml">
<f:param name="projetoId"
value="#{projeto.id}"/>
</s:link>
</h:column>
<h:column>
<f:facet name="header">Status</f:facet>
#{projeto.statusProjeto.nome}
</h:column>
<h:column>
<f:facet name="header">Usuário</f:facet>
#{projeto.usuario.nomeUsuario}
</h:column>
<h:column>
<f:facet name="header">Previsão Início</f:facet>
<h:outputText value="#{projeto.dataPrevisaoInicio}">
<f:convertDateTime type="date" pattern="dd/MM/yyyy"/>
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">Previsão Fim</f:facet>
<h:outputText value="#{projeto.dataPrevisaoFim}">
<f:convertDateTime type="date" pattern="dd/MM/yyyy"/>
</h:outputText>
</h:column>
</h:dataTable>
</div>
<div class="controleBusca">
<s:link view="/projetoList.xhtml" rendered="#{projetoList.previousExists}" value="Primeira Página">
<f:param name="firstResult" value="0"/>
</s:link>
<s:link view="/projetoList.xhtml" rendered="#{projetoList.previousExists}" value="Anterior">
<f:param name="firstResult" value="#{projetoList.previousFirstResult}"/>
</s:link>
<s:link view="/projetoList.xhtml" rendered="#{projetoList.nextExists}" value="Próxima">
<f:param name="firstResult" value="#{projetoList.nextFirstResult}"/>
</s:link>
<s:link view="/projetoList.xhtml" rendered="#{projetoList.nextExists}" value="Última Página">
<f:param name="firstResult" value="#{projetoList.lastFirstResult}"/>
</s:link>
</div>
<h:outputText value="Não existe Projeto cadastrado"
rendered="#{empty projetoList.resultList}"/>
</rich:panel>
<div class="actionButtons">
<s:button id="done"
value="Novo Projeto"
title="Cadastrar Novo Projeto"
view="/projeto.xhtml"/>
</div>
...and my EntityQuery
@Name("projetoList")
public class ProjetoList extends EntityQuery<Projeto> {
private static final long serialVersionUID = 1L;
private static final String[] RESTRICTIONS = {
"lower(projeto.titulo) like concat(lower(#{projetoList.projeto.titulo}),'%') ",
"projeto.unidadeOperacional.id = (#{projetoList.projeto.unidadeOperacional.id}) ",
"projeto.enquadramentoProjeto.programa.id = (#{projetoList.projeto.enquadramentoProjeto.programa.id}) ",
"projeto.statusProjeto.id = (#{projetoList.projeto.statusProjeto.id}) ",
"projeto.dataPrevisaoInicio = (#{projetoList.projeto.dataPrevisaoInicio}) "
};
private Projeto projeto = new Projeto();
@Override
public String getEjbql() {
return "select projeto from Projeto projeto";
}
@Override
public Integer getMaxResults() {
return 20;
}
public Projeto getProjeto() {
return this.projeto;
}
@Override
public List<String> getRestrictions() {
return Arrays.asList(RESTRICTIONS);
}
and when i execute the commandButton Buscar
( projetoList.resultSet).
14:51:03,636 INFO [STDOUT] Hibernate: select top 5 projeto0_.id as id95_, projeto0_.titulo as titulo95_, projeto0_.justificativa as justific3_95_, projeto0_.metodologia as metodolo4_95_, projeto0_.objetivoGeral as objetivo5_95_, projeto0_.publicoAlvo as publicoA6_95_, projeto0_.resultadoDesejado as resultad7_95_, projeto0_.dataPrevisaoInicio as dataPrev8_95_, projeto0_.dataPrevisaoFim as dataPrev9_95_, projeto0_.idUsuario as idUsuario95_, projeto0_.idUnidadeOperacional as idUnida10_95_, projeto0_.idEnquadramentoProjeto as idEnqua13_95_, projeto0_.idStatus as idStatus95_ from Projeto projeto0_ where lower(projeto0_.titulo) like (lower(?)+'%') 14:51:03,714 INFO [STDOUT] Hibernate: select top 5 projeto0_.id as id95_, projeto0_.titulo as titulo95_, projeto0_.justificativa as justific3_95_, projeto0_.metodologia as metodolo4_95_, projeto0_.objetivoGeral as objetivo5_95_, projeto0_.publicoAlvo as publicoA6_95_, projeto0_.resultadoDesejado as resultad7_95_, projeto0_.dataPrevisaoInicio as dataPrev8_95_, projeto0_.dataPrevisaoFim as dataPrev9_95_, projeto0_.idUsuario as idUsuario95_, projeto0_.idUnidadeOperacional as idUnida10_95_, projeto0_.idEnquadramentoProjeto as idEnqua13_95_, projeto0_.idStatus as idStatus95_ from Projeto projeto0_ 14:51:03,761 INFO [STDOUT] Hibernate: select statusproj0_.id as id100_, statusproj0_.nome as nome100_ from StatusProjeto statusproj0_ 14:51:03,792 INFO [STDOUT] Hibernate: select count(*) as col_0_0_ from Projeto projeto0_
i think that my parameters restored, but why it´s happened?