por sierto, tengo un bean que accede al UsuarioFacade
Entidad:
Código Java:
Ver original
package co.com.glokal.almaviva.modelo.entity; import java.io.Serializable; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.persistence.UniqueConstraint; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement; /** * * @author jose.ceballos */ @Table(name = "usuario", uniqueConstraints = { @UniqueConstraint(columnNames = {"usuario"})}) @XmlRootElement @NamedQueries({ @NamedQuery(name = "Usuario.findAll", query = "SELECT u FROM Usuario u"), @NamedQuery(name = "Usuario.findByUsuario", query = "SELECT u FROM Usuario u WHERE u.usuario = :usuario"), @NamedQuery(name = "Usuario.findByPassword", query = "SELECT u FROM Usuario u WHERE u.password = :password"), @NamedQuery(name = "Usuario.findByNombre", query = "SELECT u FROM Usuario u WHERE u.nombre = :nombre"), @NamedQuery(name = "Usuario.findById", query = "SELECT u FROM Usuario u WHERE u.id = :id")}) private static final long serialVersionUID = 1L; @Basic(optional = false) @NotNull @Size(min = 1, max = 50) @Column(name = "usuario", nullable = false, length = 50) @Basic(optional = false) @NotNull @Size(min = 1, max = 50) @Column(name = "password", nullable = false, length = 50) @Basic(optional = false) @NotNull @Size(min = 1, max = 50) @Column(name = "nombre", nullable = false, length = 50) @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "id", nullable = false) public Usuario() { } this.id = id; } this.id = id; this.usuario = usuario; this.password = password; this.nombre = nombre; } return usuario; } this.usuario = usuario; } return password; } this.password = password; } return nombre; } this.nombre = nombre; } return id; } this.id = id; } @Override public int hashCode() { int hash = 0; hash += (id != null ? id.hashCode() : 0); return hash; } @Override // TODO: Warning - this method won't work in the case the id fields are not set if (!(object instanceof Usuario)) { return false; } Usuario other = (Usuario) object; if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { return false; } return true; } @Override return "co.com.glokal.almaviva.controlador.entity.Usuario[ id=" + id + " ]"; } }
UsuarioFacade:
Código Javascript:
Ver original
package co.com.glokal.almaviva.modelo.daobeans; import co.com.glokal.almaviva.modelo.entity.Usuario; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; /** * * @author jose.ceballos */ @Stateless public class UsuarioFacade extends AbstractFacade<Usuario> implements UsuarioFacadeLocal { @PersistenceContext(unitName = "almaviva-ejbPU") private EntityManager em; @Override protected EntityManager getEntityManager() { return em; } public UsuarioFacade() { super(Usuario.class); } }
bean:
Código Java:
Ver original
package co.com.glokal.almaviva.controlador.beanejb; import co.com.glokal.almaviva.modelo.dao.UsuarioDao; import co.com.glokal.almaviva.modelo.daobeans.UsuarioFacade; import co.com.glokal.almaviva.modelo.daobeans.UsuarioFacadeLocal; import co.com.glokal.almaviva.modelo.entity.Usuario; import java.util.logging.Level; import java.util.logging.Logger; import javax.ejb.Stateless; import javax.ejb.LocalBean; /** * * @author jose.ceballos */ @Stateless @LocalBean public class UsuarioEjb { // Add business logic below. (Right-click in editor and choose // "Insert Code > Add Business Method") int resp = 0; try { Usuario usuario = new Usuario(); usuario.setNombre(name); usuario.setPassword(pass); usuario.setUsuario(user); UsuarioFacade usuarioDao = new UsuarioFacade(); usuarioDao.create(usuario); resp = usuario.getId(); Logger.getLogger(UsuarioEjb.class.getName()).log(Level.SEVERE, null, ex); } return resp; } }
abstractFacade:
Código Java:
Ver original
package co.com.glokal.almaviva.modelo.daobeans; import java.util.List; import javax.persistence.EntityManager; /** * * @author jose.ceballos */ public abstract class AbstractFacade<T> { private Class<T> entityClass; public AbstractFacade(Class<T> entityClass) { this.entityClass = entityClass; } protected abstract EntityManager getEntityManager(); public void create(T entity) { getEntityManager().persist(entity); } public void edit(T entity) { getEntityManager().merge(entity); } public void remove(T entity) { getEntityManager().remove(getEntityManager().merge(entity)); } return getEntityManager().find(entityClass, id); } public List<T> findAll() { javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery(); cq.select(cq.from(entityClass)); return getEntityManager().createQuery(cq).getResultList(); } public List<T> findRange(int[] range) { javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery(); cq.select(cq.from(entityClass)); javax.persistence.Query q = getEntityManager().createQuery(cq); q.setMaxResults(range[1] - range[0] + 1); q.setFirstResult(range[0]); return q.getResultList(); } public int count() { javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery(); javax.persistence.criteria.Root<T> rt = cq.from(entityClass); cq.select(getEntityManager().getCriteriaBuilder().count(rt)); javax.persistence.Query q = getEntityManager().createQuery(cq); } }
persistence.xml
Código XML:
Ver original
<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> <persistence-unit name="almaviva-ejbPU" transaction-type="JTA"> <jta-data-source>basepruebas</jta-data-source> <exclude-unlisted-classes>false</exclude-unlisted-classes> <properties/> </persistence-unit> </persistence>
no se que pueda ser lo que este mal, sinceramente no tengo ni idea de como arreglar esto
gracias de antemano