bom vamos lá
minha entidadepublic class Matricula {
@Id
@GeneratedValue
private Long id;
@ManyToOne
private Turma turma;
@ManyToOne
private Aluno aluno;
private String proficiencia;}
public List<Matricula> Filtro(Long id){
Session s = HibernateUtil.getSession();
try {
Query q = s.createQuery("from Matricula a where a.turma_id =:id");
return q.list();
} catch (Exception e) {
return null;
}finally{
s.close();
}
}
public class MatriculaBean {
private Long idTurma;
private List<Matricula> filtro = new ArrayList<Matricula>();
public List<Matricula> getFiltro() {
filtro = new MatriculaDAO().Filtro(idTurma);
return filtro;
}
public void setFiltro(List<Matricula> filtro) {
this.filtro = filtro;
}
public Long getIdTurma() {
return idTurma;
}
public void setIdTurma(Long idTurma) {
this.idTurma = idTurma;
}
public List<Turma> getTurmas() {
turmas = new TurmaDAO().listaTodos();
return turmas;
}
public void setTurmas(List<Turma> turmas) {
this.turmas = turmas;
}
e por fim meu xhtml
<h:form id="formMatricula">
<h:outputText value="Turma: "/>
<p:selectOneMenu id="turma" value="#{matriculaBean.idTurma}" >
<f:selectItem itemLabel="Selecione" />
<f:selectItems value="#{matriculaBean.turmas}" var="turma"
itemLabel="#{turma.nome}" itemValue="#{turma.id}" >
</f:selectItems>
<p:ajax event="change" update=":listaAlunos"/>
</p:selectOneMenu>
<p:commandButton update=":formMatricula,:listaAlunos" value="Matricular" actionListener="#{matriculaBean.salvar}" />
</h:panelGrid>
</h:form>
<h:form id="listaAlunos">
<p:dataTable rendered="#{matriculaBean.idTurma != null}"
rows="10" paginator="true"
value="#{matriculaBean.filtro}"
var ="v" >
<p:column>
<f:facet name="header">
<h:outputText value="Aluno"/>
</f:facet>
#{v.aluno.nome}
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Turma"/>
</f:facet>
#{v.turma.nome}
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Proficiência"/>
</f:facet>
<h:outputText rendered="#{v.proficiencia == true}" value="Sim" />
<h:outputText rendered="#{v.proficiencia == false}" value="Não" />
</p:column>
</p:dataTable>
</h:form>
eu quero que ele liste apenas os alunos que estão em determinada turma que eu selecionei nao sei muito de jsf nem de hql
eu sei que em SQL o comando seriaselect * from Matricula where turma_id = "2"