Buenas tardes a todos, me he visto con un problema mientras desarrollaba la web, y bueno, mi problema es que, en el menú que tengo en la web, hay una sección para mostrar las novedades y como tal, hice una tabla de productos, que a través de un id_familia saco las novedades, como por ejemplo, el id 1 para novedades y todos los productos con ese id, se muestran en la web. Pues bueno, hice una entity, una facade de ésta donde tengo la función "novedades", que es donde mediante productos.findallbyidFamilia, consigo tal fin, el problema me reside mas tarde en el controller de éste, que intento hacer un novedades = getFacade().Novedades(); y no me funciona. Os adjunto las capturas.
produtosController
package Controller.beans;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import java.util.List;
import javax.ejb.EJB;
import model.entity.Productos;
import model.entity.facades.ProductosFacade;
@Named(value = "productosController")
@SessionScoped
public class ProductosController implements Serializable {
@EJB
private ProductosFacade ejbFacade;
private List<Productos> items = null;
private List<ProductosFacade> novedades = null;
private Productos selected;
/**
*
*/
public List<Productos> getItems() {
if (items == null) {
items = getFacade().findAll();
}
return items;
}
public List<Productos> getNovedades(){
if (novedades == null) {
novedades = getFacade().Novedades();
}
return novedades;
}
}
productosFacade
package model.entity.facades;
import model.entity.Productos;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
import model.entity.Users;
/**
*
* @author pepe
*/
@Stateless
public class ProductosFacade extends AbstractFacade<Productos>{
@PersistenceContext(unitName = "WebApplication1PU")
private EntityManager em;
@Override
protected EntityManager getEntityManager() {
return em;
}
/**
* Creates a new instance of Productos
*/
public ProductosFacade() {
super(Productos.class);
}
public Productos Novedades() {
Productos productos = null;
TypedQuery<Productos> query = getEntityManager().createNamedQuery("Productos.findByIdFamilia", Productos.class);
query.setParameter("idFamilia", "1");
List<Productos> productosNovedades = query.getResultList();
for (int i=0; i<productosNovedades.size();i++){
productos = productosNovedades.get(i);
}
return productos;
}
}
esta es la parte donde se muestran los objetos
<ui:composition template="/layout.xhtml" xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui">
<ui:define name="content">
<h2>Novedades</h2>
<p:dataGrid value="#{productosController.novedades}" var="nov" columns="3">
<p:graphicImage value="#{nov.imagen}" />
</p:dataGrid>
<p />
<font color="RED">
Contenido de novedades
</font>
<p />
</ui:define>
</ui:composition>
¿Alguna idea?