pessoal estou tendo um problema para trazer uma lista usando o Ristriction.
abaixo o meu codigo
MODELo Menu
package ew.com.br.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name="menuew")
public class Menu implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="idMenu")
private Integer idMenu;
@ManyToOne
@JoinColumn(name = "idMenuPai")
private Menu idMenuPai;
@ManyToOne
@JoinColumn(name = "idGrupo")
private Grupo grupo;
@Column(name = "descricao")
private String descricao;
@Column(name="url")
private String url;
/*@OneToMany(fetch = FetchType.LAZY, mappedBy = "idMenuPai")
private List<Menu> menusub;*/
public Menu getIdMenuPai() {
return idMenuPai;
}
public Integer getIdMenu() {
return idMenu;
}
public void setIdMenu(Integer idMenu) {
this.idMenu = idMenu;
}
public void setIdMenuPai(Menu idMenuPai) {
this.idMenuPai = idMenuPai;
}
public Grupo getGrupo() {
return grupo;
}
public void setGrupo(Grupo grupo) {
this.grupo = grupo;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
/*public List<Menu> getMenusub() {
return menusub;
}
public void setMenusub(List<Menu> menusub) {
this.menusub = menusub;
}*/
}
MODELO MENUUSUARIOGRUPO tabela de junção
package ew.com.br.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name="MenuUsuarioGrupo")
public class MenuUsuarioGrupo implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="ID")
private int id;
@ManyToOne
@JoinColumn(name = "ID_MENU")
private Menu menu;
@ManyToOne
@JoinColumn(name = "ID_GRUPO")
private Grupo grupo;
public Menu getMenu() {
return menu;
}
public void setMenu(Menu menu) {
this.menu = menu;
}
public Grupo getGrupo() {
return grupo;
}
public void setGrupo(Grupo grupo) {
this.grupo = grupo;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
CONTROLLER
public void montaPicker(){
menuEscolhido = menuBusiness.listaMenuEscolhido(menu);
menuDisponivel = menuBusiness.listaMenuDisponivel(menuEscolhido);
menuDualList = new DualListModel<Menu>(menuDisponivel,menuEscolhido);
}
MENU DAO
@SuppressWarnings("unchecked")
public List<Menu> listaMenuDiponivel(List<Menu> menus){
Session session = HibernateUtil.getSessionFactory().openSession();
Criterion in = Restrictions.in("menu.idMenu",menus);
Criteria criteria = session.createCriteria(Menu.class);
criteria.add(Restrictions.not(in));
List<Menu> lista = criteria.list();
return lista;
}
@SuppressWarnings("unchecked")
public List<Menu> listaMenuEscolhidos(Menu o){
Session session = HibernateUtil.getSessionFactory().openSession();
org.hibernate.Query c = session.createQuery("Select mug from MenuUsuarioGrupo mug, Grupo g, Menu m WHERE m.idMenu = mug.menu.idMenu AND g.idGrupo = mug.grupo.idGrupo and mug.grupo.idGrupo = :idGrupo");
c.setParameter("idGrupo", o.getGrupo().getIdGrupo());
List<Menu> lista = c.list();
return lista;
}
GERENCIARMENU
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
template="/template/template_padrao.xhtml">
<h:head>
</h:head>
<ui:define name="conteudo">
<h:form id="form">
<p:confirmDialog message="Deseja realmente excluir este registro?"
hideEffect="explode" header="Aviso" severity="alert"
widgetVar="confirmation" modal="true">
<!--caso seja sim chamo o metodo excluir, e fecho o modal com o oncomplete, tenho o process que estou dizendo para processar o form, e update para atualizar a tabela-->
<p:commandButton id="btnSim" value="Sim" oncomplete="confirmation.hide();"
actionListener="#{usuarioController.deletar}"
>
</p:commandButton>
<!--caso seja não somente fecha o modal-->
<p:commandButton id="btnNao" value="Não" onclick="confirmation.hide();" type="button"/>
</p:confirmDialog>
<p:dialog modal="false" widgetVar="sucess" header="Informação do Sistema"
draggable="false" closable="false" resizable="false">
<h:panelGrid columns="2" style="padding: 25px;margin-left:150px;" cellpadding="5">
<h:outputText value="Usuário adicionado com sucesso!!" />
<p:commandButton id="infoSucess" value="OK" ajax="false" onclick="sucess.hide()" />
</h:panelGrid>
</p:dialog>
<h:panelGrid width="650">
<p:fieldset legend="Cadastro de Novas Menus" id="cadastroMenu">
<h:panelGrid columns="1">
<h:outputLabel value="Descricrição/Nome:" id="empresa" title="Informe o nome do menu" style="FONT-WEIGHT: bold;"/>
<h:inputText value="#{menuController.menu.descricao}" size="50"/>
<h:outputLabel value="URL" id="url" title="Informe a URL" style="FONT-WEIGHT: bold;"/>
<h:inputText value="#{menuController.menu.url}" size="50"/>
<h:outputLabel value="Menu:" style="FONT-WEIGHT: bold;"/>
<p:selectOneMenu id="listgrupo" value="#{menuController.menu.idMenu}" required="false" requiredMessage="Selecione um grupo">
<f:selectItem itemLabel="Selecione o menu pai" itemValue="#{NULL}" />
<f:selectItems value="#{menuController.menus}"
var="menu" itemLabel="#{menu.descricao}" itemValue="#{menu.idMenu}" />
</p:selectOneMenu>
<h:outputLabel value="Grupo:" style="FONT-WEIGHT: bold;"/>
<p:selectOneMenu id="listmenu" value="#{grupoController.grupo.idGrupo}" required="false" requiredMessage="Selecione um grupo">
<f:selectItem itemLabel="Selecione o Grupo" itemValue="#{NULL}" />
<f:selectItems value="#{grupoController.grupos}"
var="grupo" itemLabel="#{grupo.nome}" itemValue="#{grupo.idGrupo}" />
</p:selectOneMenu>
</h:panelGrid>
<br />
<p:commandButton value="Salvar" type="submit" ajax="true"
oncomplete="sucess.show()"
actionListener="#{menuController.addMenu}">
</p:commandButton>
</p:fieldset>
</h:panelGrid>
</h:form>
<br />
<p:fieldset legend="Lista de Menu" style="margin-bottom: 150px;">
<h:form id="formTabela">
<p:dataTable id="listaUsuario" var="menu" value="#{menuController.menus}"
emptyMessage="Nenhum menu encontrado." paginator="true"
rows="3" rowStyleClass="odd, even">
<p:column id="ID" headerText="ID" sortBy="#{menu.idMenu}">
<h:outputText value="#{menu.idMenu}" />
</p:column>
<p:column id="Nome" filterBy="#{menu.descricao}"
headerText="Filtrar por nome" sortBy="#{menu.descricao}">
<h:outputText value="#{menu.descricao}"/>
</p:column>
<p:column id="Pai" filterBy="#{menu.idMenuPai.idMenu}"
headerText="Filtrar por pai">
<h:outputText value="#{menu.idMenuPai.idMenu}"/>
</p:column>
<p:column id="Grupo" filterBy="#{menu.grupo.nome}"
headerText="Filtrar por grupo" sortBy="#{menu.grupo.nome}">
<h:outputText value="#{menu.grupo.nome}" />
</p:column>
<p:column>
<p:commandButton value="niveis" title="Associar Menu" ajax="true"
onclick="editWidget.show()"
>
</p:commandButton>
</p:column>
</p:dataTable>
</h:form>
</p:fieldset>
<p:dialog header="Associando Menu ao Grupo" widgetVar="editWidget" resizable="false" id="edit" >
<h:form id="formDialog">
<h:panelGrid id="pickt" columns="2" cellpadding="4" style="margin:0 auto;">
<p:pickList id="pickList" value="#{menuController.menuDualList}" var="menu"
itemLabel="#{menu}"
itemValue="#{menu}" converter="menuConverter">
</p:pickList>
<p:commandButton value="Salvar" title="Associar Menu" ajax="true"
actionListener="#{menuController.associaMenuGrupo}"
>
</p:commandButton>
<f:facet name="sourceCaption">Opções</f:facet>
<f:facet name="targetCaption">Selecionados</f:facet>
</h:panelGrid>
</h:form>
</p:dialog>
</ui:define>
</ui:composition>
este é o erro que esta dando…
javax.servlet.ServletException: Um erro ocorreu ao realizar a injeção de recurso no bean gerenciado menuController
javax.faces.webapp.FacesServlet.service(FacesServlet.java:521)
root cause
com.sun.faces.mgbean.ManagedBeanCreationException: Um erro ocorreu ao realizar a injeção de recurso no bean gerenciado menuController
com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:229)
com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:105)
com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409)
com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269)
com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:244)
com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:116)
com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:72)
org.apache.el.parser.AstValue.getValue(AstValue.java:161)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:193)
org.primefaces.component.menubar.Menubar.getModel(Menubar.java:86)
org.primefaces.component.menu.AbstractMenu.buildMenuFromModel(AbstractMenu.java:36)
org.primefaces.component.menu.BaseMenuRenderer.encodeEnd(BaseMenuRenderer.java:35)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:884)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:854)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1674)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1677)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1677)
com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:399)
com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:509)
root cause
com.sun.faces.spi.InjectionProviderException
com.sun.faces.vendor.WebContainerInjectionProvider.invokeAnnotatedMethod(WebContainerInjectionProvider.java:115)
com.sun.faces.vendor.WebContainerInjectionProvider.invokePostConstruct(WebContainerInjectionProvider.java:95)
com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:223)
com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:105)
com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409)
com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269)
com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:244)
com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:116)
com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:72)
org.apache.el.parser.AstValue.getValue(AstValue.java:161)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:193)
org.primefaces.component.menubar.Menubar.getModel(Menubar.java:86)
org.primefaces.component.menu.AbstractMenu.buildMenuFromModel(AbstractMenu.java:36)
org.primefaces.component.menu.BaseMenuRenderer.encodeEnd(BaseMenuRenderer.java:35)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:884)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:854)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1674)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1677)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1677)
com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:399)
com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:509)
root cause
java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.sun.faces.vendor.WebContainerInjectionProvider.invokeAnnotatedMethod(WebContainerInjectionProvider.java:113)
com.sun.faces.vendor.WebContainerInjectionProvider.invokePostConstruct(WebContainerInjectionProvider.java:95)
com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:223)
com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:105)
com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409)
com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269)
com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:244)
com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:116)
com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:72)
org.apache.el.parser.AstValue.getValue(AstValue.java:161)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:193)
org.primefaces.component.menubar.Menubar.getModel(Menubar.java:86)
org.primefaces.component.menu.AbstractMenu.buildMenuFromModel(AbstractMenu.java:36)
org.primefaces.component.menu.BaseMenuRenderer.encodeEnd(BaseMenuRenderer.java:35)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:884)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:854)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1674)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1677)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1677)
com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:399)
com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:509)
root cause
java.lang.ClassCastException: ew.com.br.model.MenuUsuarioGrupo cannot be cast to java.lang.Integer
org.hibernate.type.descriptor.java.IntegerTypeDescriptor.unwrap(IntegerTypeDescriptor.java:36)
org.hibernate.type.descriptor.sql.IntegerTypeDescriptor$1.doBind(IntegerTypeDescriptor.java:57)
org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:92)
org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:305)
org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:300)
org.hibernate.loader.Loader.bindPositionalParameters(Loader.java:1907)
org.hibernate.loader.Loader.bindParameterValues(Loader.java:1878)
org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1756)
org.hibernate.loader.Loader.doQuery(Loader.java:828)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:289)
org.hibernate.loader.Loader.doList(Loader.java:2463)
org.hibernate.loader.Loader.doList(Loader.java:2449)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2279)
org.hibernate.loader.Loader.list(Loader.java:2274)
org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:122)
org.hibernate.internal.SessionImpl.list(SessionImpl.java:1483)
org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:374)
ew.com.br.dao.MenuDao.listaMenuDiponivel(MenuDao.java:130)
ew.com.br.business.MenuBusiness.listaMenuDisponivel(MenuBusiness.java:55)
ew.com.br.controller.MenuController.montaPicker(MenuController.java:100)
ew.com.br.controller.MenuController.init(MenuController.java:49)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.sun.faces.vendor.WebContainerInjectionProvider.invokeAnnotatedMethod(WebContainerInjectionProvider.java:113)
com.sun.faces.vendor.WebContainerInjectionProvider.invokePostConstruct(WebContainerInjectionProvider.java:95)
com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:223)
com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:105)
com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409)
com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269)
com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:244)
com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:116)
com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:72)
org.apache.el.parser.AstValue.getValue(AstValue.java:161)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:193)
org.primefaces.component.menubar.Menubar.getModel(Menubar.java:86)
org.primefaces.component.menu.AbstractMenu.buildMenuFromModel(AbstractMenu.java:36)
org.primefaces.component.menu.BaseMenuRenderer.encodeEnd(BaseMenuRenderer.java:35)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:884)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:854)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1674)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1677)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1677)
com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:399)
com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:509)