Estoy haciendo aplicación web en netbeans con ICEFaces e Hibernate. Tengo un bean que contiene un objeto de la clase Cliente que a su vez contiene un elemento HashSet de objetos de la clase Proyecto.
Clase Cliente:
Código:
Clase Proyectopublic class Cliente implements java.io.Serializable { private Integer idCliente; private String nombre; private String usuario; private String pass; private Set proyectos = new HashSet(0); public Cliente() { } public Cliente(String nombre, String usuario, String pass) { this.nombre = nombre; this.usuario = usuario; this.pass = pass; } public Cliente(String nombre, String usuario, String pass, Set proyectos) { this.nombre = nombre; this.usuario = usuario; this.pass = pass; this.proyectos = proyectos; } public Integer getIdCliente() { return this.idCliente; } public void setIdCliente(Integer idCliente) { this.idCliente = idCliente; } public String getNombre() { return this.nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getUsuario() { return this.usuario; } public void setUsuario(String usuario) { this.usuario = usuario; } public String getPass() { return this.pass; } public void setPass(String pass) { this.pass = pass; } public Set getProyectos() { return this.proyectos; } public void setProyectos(Set proyectos) { this.proyectos = proyectos; } }
Código:
Bean public class Proyecto implements java.io.Serializable { private Integer idProyecto; private Dueno dueno; private Empleado empleado; private Cliente cliente; private String nombre; private String descripcion; private String estado; private Set empleados = new HashSet(0); private Set tareas = new HashSet(0); public Proyecto() { } public Proyecto(Dueno dueno, Empleado empleado, Cliente cliente, String nombre, String descripcion, String estado) { this.dueno = dueno; this.empleado = empleado; this.cliente = cliente; this.nombre = nombre; this.descripcion = descripcion; this.estado = estado; } public Proyecto(Dueno dueno, Empleado empleado, Cliente cliente, String nombre, String descripcion, String estado, Set empleados, Set tareas) { this.dueno = dueno; this.empleado = empleado; this.cliente = cliente; this.nombre = nombre; this.descripcion = descripcion; this.estado = estado; this.empleados = empleados; this.tareas = tareas; } public Integer getIdProyecto() { return this.idProyecto; } public void setIdProyecto(Integer idProyecto) { this.idProyecto = idProyecto; } public Dueno getDueno() { return this.dueno; } public void setDueno(Dueno dueno) { this.dueno = dueno; } public Empleado getEmpleado() { return this.empleado; } public void setEmpleado(Empleado empleado) { this.empleado = empleado; } public Cliente getCliente() { return this.cliente; } public void setCliente(Cliente cliente) { this.cliente = cliente; } public String getNombre() { return this.nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getDescripcion() { return this.descripcion; } public void setDescripcion(String descripcion) { this.descripcion = descripcion; } public String getEstado() { return this.estado; } public void setEstado(String estado) { this.estado = estado; } public Set getEmpleados() { return this.empleados; } public void setEmpleados(Set empleados) { this.empleados = empleados; } public Set getTareas() { return this.tareas; } public void setTareas(Set tareas) { this.tareas = tareas; } }
Código:
Una vez que hago el loguin, el hashset de la clase cliente se rellena correctamentepublic class Bean { String usuario, pass; Cliente cliente; ArrayList<Proyecto> lista; Session sesionH; Transaction tx; /** Creates a new instance of LoginBean */ public Login() { sesionH=HibernateUtil.getSessionFactory().getCurrentSession(); tx = sesionH.beginTransaction(); } /** Getters y Setters */ public Cliente getCliente() { return cliente; } public void setCliente(Cliente cliente) { this.cliente = cliente; } public String getPass() { return pass; } public void setPass(String pass){ this.pass = pass; } public String getUsuario() { return usuario; } public void setUsuario(String usuario) { this.usuario = usuario; } /** Metodo que comprueba si el nombre de usuario y la contraseña son correctas */ public String loguear(){ cliente = null; cliente = loguinCliente( usuario, pass); if ( cliente != null )return "CLIENTE_VALIDO"; else{ FacesContext context = FacesContext.getCurrentInstance(); context.getExternalContext().getSessionMap().remove("loginBean"); return "LOGUIN_INCORRECTO"; } } /** Metodo que me devuelve un cliente en caso de que su nombre de usuario y contraseña concuerde con la de la pagina de loguin */ public Cliente loguinCliente(String u, String p){ Cliente c = null; try{ Query q = sesionH.createQuery("from Cliente as c where c.usuario='"+u+"' and c.pass='"+p+"'"); c = (Cliente) q.uniqueResult(); }catch(Exception e){ e.printStackTrace(); } return c; }
Lo que queria es saber como puedo hacer un ice:selectOneMenu que me muestre el campo nombre de la cada uno de los proyectos que hay en el HashSet de cla clase Cliente y me devuelva el idProyecto del mismo.
Muchas gracias.