[jboss-user] [EJB 3.0] - EntityManager find does not fill Entities

sebasjm do-not-reply at jboss.com
Tue Sep 12 13:04:33 EDT 2006


Hello, I'm using Jboss 4.0.4 installed with EJB. and I'm having a problem with the EntityManager.

It seems that it does not initialize the Entitys when I try to get an object from the DB with the find method.

This is my test unit code:


  | 	public void testIngresarPrestacion(){
  | 		TipoPractica tp = (TipoPractica) controladorEjb.cargar(TipoPractica.class,new Integer(1));
  | 		System.out.println("tipoPractica.descripcion = " + tp.getDescripcion());
  | 	}
  | 

controladorEjb: an stateless session bean access remotely through JNDI
controladorEjb.cargar: exactly the same than EntityManager.find()

When I debug it, controladorEjb.cargar() return an instance of TipoPractica but with no property set.

In the log file I get:
anonymous wrote : 
  | 2006-09-12 11:58:10,359 DEBUG [org.hibernate.pretty.Printer] listing entities:
  | 2006-09-12 11:58:10,359 DEBUG [org.hibernate.pretty.Printer] ar.com.selenca.TipoPractica{valorBase=10.0, titulo=10905, descripcion=Lifemia o lipidos totales en sangre, nomenclado=true, id=1, activo=true, fechaAlta=null, usuarioAlta=null, especialidad=null, capitulo=10904, usuarioModificacion=null, fechaModificacion=null, codigo=8614}
  | 

when the query is executed, so it gets all the information from the DB but for some reason it does not complete the bean properly.

I have isolate the problem in a mini Java proyect, feel free to ask me for it.

Here is the TipoPractica java file:

  | package ar.com.selenca;
  | 
  | import java.io.Serializable;
  | 
  | import javax.persistence.DiscriminatorValue;
  | import javax.persistence.Entity;
  | 
  | 
  | @Entity
  | @DiscriminatorValue("TP")
  | public class TipoPractica extends TipoPrestacion implements Serializable
  | {
  |     private static final long serialVersionUID = 3688507705476263988L;
  | 
  | 
  | }
  | 

and TipoPrestacion : 


  | package ar.com.selenca;
  | 
  | import java.util.Date;
  | 
  | import javax.persistence.Column;
  | import javax.persistence.DiscriminatorColumn;
  | import javax.persistence.DiscriminatorType;
  | import javax.persistence.DiscriminatorValue;
  | import javax.persistence.Entity;
  | import javax.persistence.GeneratedValue;
  | import javax.persistence.Id;
  | import javax.persistence.Inheritance;
  | import javax.persistence.InheritanceType;
  | import javax.persistence.Table;
  | import javax.persistence.Transient;
  | 
  | @Entity
  | @Table(name="PRESTACION_TIPO")
  | @Inheritance(strategy=InheritanceType.SINGLE_TABLE)
  | @DiscriminatorColumn(name="PRT_TIPO",discriminatorType=DiscriminatorType.STRING)
  | @DiscriminatorValue("XX")
  | public abstract class TipoPrestacion 
  | {
  |     private Integer id;
  |     private String codigo;
  |     private String descripcion;
  |     
  |     private double valorBase;
  |     private String especialidad;
  |     private Integer capitulo;
  |     private Integer titulo;
  |     
  |     private boolean nomenclado = true;
  |     
  |     private Date fechaAlta;
  |     private String usuarioAlta;
  |     private Date fechaModificacion;
  |     private String usuarioModificacion;
  |     
  |     private boolean activo = true;
  |     
  |     @Column(name="PRT_CODIGO",nullable=false)
  |     public String getCodigo()
  |     {
  |         return this.codigo;
  |     }
  |     public void setCodigo(String codigo)
  |     {
  |         this.codigo = codigo;
  |     }
  | 
  |     @Column(name="PRT_DESCRIPCION")
  |     public String getDescripcion()
  |     {
  |         return this.descripcion;
  |     }
  |     public void setDescripcion(String descripcion)
  |     {
  |         this.descripcion = descripcion;
  |     }
  | 
  |     @Id
  |     @GeneratedValue
  |     @Column(name="PRT_ID")
  |     public Integer getId()
  |     {
  |         return this.id;
  |     }
  |     public void setId(Integer id)
  |     {
  |         this.id = id;
  |     }
  |     
  |     @Column(name="PRT_ACTIVO")
  | 	public boolean getActivo()
  | 	{
  | 		return activo;
  | 	}
  | 	public void setActivo(boolean activo)
  | 	{
  | 		this.activo = activo;
  | 	}
  | 	
  | 	@Column(name="PRT_FECHA_ALTA")
  | 	public Date getFechaAlta() 
  | 	{
  | 		return fechaAlta;
  | 	}
  | 	public void setFechaAlta(Date fechaAlta) 
  | 	{
  | 		this.fechaAlta = fechaAlta;
  | 	}
  | 
  | 	@Column(name="PRT_FECHA_MODIFICACION")
  | 	public Date getFechaModificacion() 
  | 	{
  | 		return fechaModificacion;
  | 	}
  | 	public void setFechaModificacion(Date fechaModificacion) 
  | 	{
  | 		this.fechaModificacion = fechaModificacion;
  | 	}
  | 
  | 	@Column(name="PRT_USUARIO_ALTA")
  | 	public String getUsuarioAlta()
  | 	{
  | 		return usuarioAlta;
  | 	}
  | 	public void setUsuarioAlta(String usuarioAlta) 
  | 	{
  | 		this.usuarioAlta = usuarioAlta;
  | 	}
  | 
  | 	@Column(name="PRT_USUARIO_MODIFICACION")
  | 	public String getUsuarioModificacion() 
  | 	{
  | 		return usuarioModificacion;
  | 	}
  | 	public void setUsuarioModificacion(String usuarioModificacion) 
  | 	{
  | 		this.usuarioModificacion = usuarioModificacion;
  | 	}
  | 	
  |     @Column(name="PRT_ESPECIALIDAD")
  |     public String getEspecialidad()
  |     {
  |         return this.especialidad;
  |     }
  |     public void setEspecialidad(String especialidad)
  |     {
  |         this.especialidad = especialidad;
  |     }
  | 
  |     @Column(name="PRT_IDCAPITULO")
  |     public Integer getCapitulo()
  |     {
  |         return this.capitulo;
  |     }
  |     public void setCapitulo(Integer capitulo)
  |     {
  |         this.capitulo = capitulo;
  |     }
  | 
  |     @Column(name="PRT_IDTITULO")
  |     public Integer getTitulo()
  |     {
  |         return this.titulo;
  |     }
  |     public void setTitulo(Integer titulo)
  |     {
  |         this.titulo = titulo;
  |     }
  |     
  |     @Column(name="PRT_NOMENCLADO")
  |     public boolean isNomenclado()
  |     {
  |         return this.nomenclado;
  |     }
  |     public void setNomenclado(boolean nomenclado)
  |     {
  |         this.nomenclado = nomenclado;
  |     }
  | 
  |     @Column(name="PRT_VALOR_BASE")
  | 	public double getValorBase()
  | 	{
  | 		return valorBase;
  | 	}
  | 	public void setValorBase(double valorBase)
  | 	{
  | 		this.valorBase = valorBase;
  | 	}
  | 	
  | 	@Transient
  | 	public String getIdentidad()
  | 	{
  | 		return this.descripcion + " [" + this.codigo + "] ";
  | 	}
  | }
  | 

Thanks in advance.

----
Sebastian Javier Marchano
www.selenca.com

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3971084#3971084

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3971084



More information about the jboss-user mailing list