You can find the full source code for this website in the Seam package in the directory /examples/wiki. It is licensed under the LGPL.
| Online: | 24 Members of 4505 |
| Forum: Seam Users |
06. Jun 2008, 19:55 CET | Link |
Hi, 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?
hi, i create an projetoList.page.xml and resolved my problem :D
<?xml version="1.0" encoding="UTF-8"?> <page xmlns="http://jboss.com/products/seam/pages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.0.xsd"> <param name="firstResult" value="#{projetoList.firstResult}"/> <param name="order" value="#{projetoList.order}"/> <param name="from"/> <param name="titulo" value="#{projetoList.projeto.titulo}"/> </page>thanks :D
but i dont know do restriction with Collections... for example:
Company x Employee
@Entity Company { List<Employee> employee; }how i do in RESTRICTIONS rules(EntityQuery) and in PARAM (entityList.page.xml) ?