Boa tarde!
Primeiramente, peço desculpas, pois deve ter alguma resposta semelhante a minha dúvida aqui no fórum, mas diversos tópicos eu não consegui entender e fazer funcionar no meu caso. Acredito ser uma dúvida simples.
Estou fazendo um sistema para gerenciar ocorrências técnicas (Help Desk), estou utilizando JSF, Spring e Hibernate por enquanto.
A dúvida é a seguinte:
No meu formulário de usuários, eu tenho uma lista de departamentos que encontra-se em um tabela do banco de dados. Este <p:selectOneMenu /> vai mostrar a listagem apenas dos departamentos ativos e com o campo “tecnico” também marcado como “true” (Que será o departamento que atende as ocorrências técnicas).
Eu não consigo fazer com que a listagem exiba somente os departamentos ativos. Utilizando JDBC, simplesmente altera o query do Statement colocando uma clausula where com o campo ativo sendo o valor 1.
No Hibernate eu não sei como fazer.
Segue abaixo as classes que envolvem o Departamento:
Departamento
[code]@Entity
public class Departamento implements Serializable {
@Id
@GeneratedValue
private Integer codigo;
private String departamento;
private boolean tecnico;
private boolean disponibilidade;
/(Getters e Setters)/[/code]
DepartamentoDAO (Interface)
[code]public interface DepartamentoDAO {
public void salvar(Departamento departamento);
public void atualizar(Departamento departamento);
public void excluir(Departamento departamento);
public List<Departamento> listar();
}[/code]
DepartamentoDAOHibernate
[code]public class DepartamentoDAOHibernate implements DepartamentoDAO {
private Session session;
public void setSession(Session session) {
this.session = session;
}
public void salvar(Departamento departamento) {
this.session.save(departamento);
}
public void atualizar(Departamento departamento) {
this.session.update(departamento);
}
public void excluir(Departamento departamento) {
this.session.delete(departamento);
}
@SuppressWarnings(“unchecked”)
public List<Departamento> listar() {
return this.session.createCriteria(Departamento.class).list();
}
}[/code]
DepartamentoRN (Camada de Regra de Negócio)
[code]public class DepartamentoRN {
private DepartamentoDAO departamentoDAO;
public DepartamentoRN() {
this.departamentoDAO = DAOFactory.criarDepartamentoDAO();
}
public void salvar(Departamento departamento) {
Integer codigo = departamento.getCodigo();
if (codigo == null || codigo == 0) {
this.departamentoDAO.salvar(departamento);
} else {
this.departamentoDAO.atualizar(departamento);
}
}
public void excluir(Departamento departamento) {
this.departamentoDAO.excluir(departamento);
}
public List<Departamento> listar() {
return this.departamentoDAO.listar();
}
}[/code]
Trecho do Formulário
[code]<h:outputLabel>Selecione
<p:commandLink value=" ou cadastre um novo departamento"
action="#{departamentoBean.novo}" immediate=“true” />
</h:outputLabel>
<h:outputLabel value=“Departamento” for=“departamento” />
<p:selectOneMenu value="#{departamentoBean.departamento.codigo}" id=“departamento”>
<f:selectItems value="#{departamentoBean.lista}" var=“departamento"
itemLabel=”#{departamento.departamento
}“
itemValue=”#{departamento.codigo}" />
</p:selectOneMenu> [/code]