[jboss-user] [EJB 3.0] - Problems with ejb3 EntityManager, find method
marianokm
do-not-reply at jboss.com
Fri Dec 8 16:11:37 EST 2006
Hi, i got the following exception when i run my code
| Hibernate: select rol0_.ROL_ID as ROL1_6_0_, rol0_.ADMINISTRADOR as ADMINIST2_6_0_, rol0_.DESCRIPCION as DESCRIPC3_6_0_, rol0_.HABIL
| ITADO as HABILITADO6_0_, rol0_.NOTAS as NOTAS6_0_ from ROL rol0_ where rol0_.ROL_ID=?
| 17:21:47,640 ERROR [STDERR] java.lang.ClassCastException: ar.com.ebizlink.server.models.Rol
| 17:21:47,640 ERROR [STDERR] at $Proxy97.getRol(Unknown Source)
| 17:21:47,640 ERROR [STDERR] at ar.com.ebizlink.console.controllers.RolController.edit(Unknown Source)
|
My enviroment is:
jboss-4.0.5.GA, jems installer (ejb3 instalation)
j2sdk1.5.0_09
jboss-eclipse 1.5
and the files are listed next ...
Rol.java
| package ar.com.ebizlink.server.models;
|
| import javax.persistence.Column;
| import javax.persistence.Entity;
| import javax.persistence.GeneratedValue;
| import javax.persistence.Id;
| import javax.persistence.Table;
|
| @Entity
| @Table(name = "ROL")
| public class Rol implements java.io.Serializable {
|
| private static final long serialVersionUID = 1L;
|
| // Fields
| private Long rolId;
|
| private String descripcion;
|
| private Boolean habilitado;
|
| private Boolean administrador;
|
| private String notas;
|
| // Constructors
|
| /** default constructor */
| public Rol() {
| }
|
| /** minimal constructor */
| public Rol(Long rolId) {
| this.rolId = rolId;
| }
|
| /** full constructor */
| public Rol(Long rolId, String descripcion, Boolean habilitado,
| Boolean administrador, String notas) {
| this.rolId = rolId;
| this.descripcion = descripcion;
| this.habilitado = habilitado;
| this.administrador = administrador;
| this.notas = notas;
| }
|
| // Property accessors
| @Id
| @GeneratedValue
| @Column(name = "ROL_ID", unique = true, nullable = false, insertable = true, updatable = true)
| public Long getRolId() {
| return this.rolId;
| }
|
| public void setRolId(Long rolId) {
| this.rolId = rolId;
| }
|
| @Column(name = "DESCRIPCION", unique = false, nullable = true, insertable = true, updatable = true, length = 50)
| public String getDescripcion() {
| return this.descripcion;
| }
|
| public void setDescripcion(String descripcion) {
| this.descripcion = descripcion;
| }
|
| @Column(name = "HABILITADO", unique = false, nullable = true, insertable = true, updatable = true)
| public Boolean getHabilitado() {
| return this.habilitado;
| }
|
| public void setHabilitado(Boolean habilitado) {
| this.habilitado = habilitado;
| }
|
| @Column(name = "ADMINISTRADOR", unique = false, nullable = true, insertable = true, updatable = true)
| public Boolean getAdministrador() {
| return this.administrador;
| }
|
| public void setAdministrador(Boolean administrador) {
| this.administrador = administrador;
| }
|
| @Column(name = "NOTAS", unique = false, nullable = true, insertable = true, updatable = true, length = 100)
| public String getNotas() {
| return this.notas;
| }
|
| public void setNotas(String notas) {
| this.notas = notas;
| }
|
| }
|
RolManager.java
| package ar.com.ebizlink.server.interfaces;
|
| import java.util.List;
|
| import javax.ejb.Local;
|
| import ar.com.ebizlink.server.models.Rol;
|
| @Local
| public interface RolManager {
|
| public Rol getRol(Long rolId);
|
| public List<Rol> getRoles();
|
| public void save(Rol detached);
|
| public void delete(Long rolId);
| }
|
The bean instance
| package ar.com.ebizlink.server.beans;
|
| import java.util.List;
|
| import javax.ejb.Stateless;
| import javax.ejb.TransactionAttribute;
| import javax.ejb.TransactionAttributeType;
| import javax.persistence.EntityManager;
| import javax.persistence.PersistenceContext;
|
| import ar.com.ebizlink.server.interfaces.RolManager;
| import ar.com.ebizlink.server.models.Rol;
|
| @Stateless
| public class RolManagerBean implements RolManager {
|
| @PersistenceContext
| private EntityManager em;
|
| public Rol getRol(Long rolId) {
| return em.find(Rol.class, rolId);
| // Query query = em.createQuery("select r from Rol r where r.rolId =
| // :rolId");
| // query.setParameter("rolId", rolId);
| // return (Rol)query.getSingleResult();
| }
|
| @SuppressWarnings("unchecked")
| public List<Rol> getRoles() {
| return em.createQuery("from Rol").getResultList();
| }
|
| @TransactionAttribute(TransactionAttributeType.REQUIRED)
| public void save(Rol detached) {
| Rol rol = getCurrent(detached.getRolId());
| rol.setAdministrador(detached.getAdministrador());
| rol.setDescripcion(detached.getDescripcion());
| rol.setHabilitado(detached.getHabilitado());
| rol.setNotas(detached.getNotas());
| em.persist(rol);
| }
|
| @TransactionAttribute(TransactionAttributeType.MANDATORY)
| private Rol getCurrent(Long rolId) {
| Rol rol = getRol(rolId);
| if (rol == null) {
| rol = new Rol();
| em.persist(rol);
| }
| return rol;
| }
|
| @TransactionAttribute(TransactionAttributeType.REQUIRED)
| public void delete(Long rolId) {
| Rol rol = getRol(rolId);
| em.remove(rol);
| }
|
| }
|
JSF CODE - RolController.java
| package ar.com.ebizlink.console.controllers;
|
| import java.util.List;
|
| import ar.com.ebizlink.console.forms.RolForm;
| import ar.com.ebizlink.server.interfaces.RolManager;
| import ar.com.ebizlink.server.models.Rol;
| import ar.com.ulink.framework.commons.tokens.CommonsTokens;
| import ar.com.ulink.framework.ejb3.EJB3ServiceLocator;
| import ar.com.ulink.framework.mvc.jsf.JsfUtility;
|
| public class RolController {
|
| private RolForm rolForm;
|
| public final RolForm getRolForm() {
| return rolForm;
| }
|
| public final void setRolForm(RolForm rolForm) {
| this.rolForm = rolForm;
| }
|
| // THIS METHOD WORKS FINE !!
|
| public final List<Rol> getRoles() {
| List<Rol> roles = null;
| try {
| RolManager rolManager = (RolManager) EJB3ServiceLocator
| .getEjbInterface("ebizlink/RolManagerBean/local");
| roles = rolManager.getRoles();
| } catch (Exception e) {
| e.printStackTrace();
| }
| return roles;
| }
|
| // HOWEVER, THIS ONE CRASH !!
| // when execute : Rol rol = rolManager.getRol(rolId);
|
| public final String edit() {
|
| // Status a devolver.
| String actionForward = CommonsTokens.EDIT_SUCCESS;
|
| // Tomo el parametro del rol a modificar.
| Long rolId = Long.valueOf(JsfUtility.getObjectFromContext("rolId")
| .toString());
|
| System.out.println("************* RolId: " + rolId);
|
| try {
| // Obtengo el rol a modificar.
| RolManager rolManager = (RolManager) EJB3ServiceLocator
| .getEjbInterface("ebizlink/RolManagerBean/local");
|
| System.out.println("************* paso 2, RolId: " + rolId);
|
| // Here's the exception
| Rol rol = rolManager.getRol(rolId);
|
| System.out.println("************* paso 3, RolId: " + rolId);
|
| // Asigno los datos al form.
| rolForm.setAdministrador(rol.getAdministrador());
| rolForm.setDescripcion(rol.getDescripcion());
| rolForm.setHabilitado(rol.getHabilitado());
| rolForm.setNotas(rol.getNotas());
| rolForm.setRolId(rol.getRolId());
|
| } catch (Exception e) {
| actionForward = CommonsTokens.EDIT_FAILURE;
| e.printStackTrace();
| }
|
| // Forward del formulario.
| return actionForward;
| }
|
| }
|
i have the exception mentioned earlier and i dont have any clue where the probles is ...
any ideas ??
Regards
Mariano
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3992346#3992346
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3992346
More information about the jboss-user
mailing list