-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 
Author Message
 Post subject: @ManyToOne relations
PostPosted: Mon Sep 01, 2008 4:09 am 
Newbie

Joined: Mon Sep 01, 2008 3:41 am
Posts: 19
Hi all,

I have to tables: ReportCabecera and ReportLogEjecucion.

For one ReportCabecera I can have many ReportLogEjecucion.

To relate a table with another one I have done this:

Code:
package com.uw.diode.entity;

import java.io.Serializable;
import java.sql.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

@SuppressWarnings("serial")
@Entity
@Table(name="ReportLogEjecucion")
public class LogEjecucionInformes implements Serializable {
   
   @Id
   @GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "REPORTLOGEJECUCION_SEQ")
   @SequenceGenerator(name="REPORTLOGEJECUCION_SEQ", sequenceName = "reportlogejecucion_seq")
   @Column(name="RelogEje_idReportLogEjecucion", precision=10)
   public long id;
   
   @Column(name="RelogEje_idReportcabecera")
   private CabeceraInforme idCabeceraInforme;
   
   @Column(name="RelogEje_Formatosalida", length=6)
   private String formatoSalida;
   
   @Column(name="RelogEje_Fecha")
   private Date fechaEjecucion;
   
   @Column(name="RelogEje_Hora", length=6)
   private String horaEjecucion;
   
   @Column(name="RelogEje_usuario", length=20)
   private String usuario;

   public long getId() {
      return id;
   }

   public void setId(long id) {
      this.id = id;
   }
   
   @ManyToOne
   @JoinColumn(name="RelogEje_idReportcabecera")
   public CabeceraInforme getIdCabeceraInforme() {
      return idCabeceraInforme;
   }
   
   public void setIdCabeceraInforme (CabeceraInforme cabeceraInforme) {
      this.idCabeceraInforme = cabeceraInforme;
   }

   public String getFormatoSalida() {
      return formatoSalida;
   }

   public void setFormatoSalida(String formatoSalida) {
      this.formatoSalida = formatoSalida;
   }

   public Date getFechaEjecucion() {
      return fechaEjecucion;
   }

   public void setFechaEjecucion(Date fechaEjecucion) {
      this.fechaEjecucion = fechaEjecucion;
   }

   public String getHoraEjecucion() {
      return horaEjecucion;
   }

   public void setHoraEjecucion(String horaEjecucion) {
      this.horaEjecucion = horaEjecucion;
   }

   public String getUsuario() {
      return usuario;
   }

   public void setUsuario(String usuario) {
      this.usuario = usuario;
   }

}



When I try to use this class the application server throws this exception:

org.springframework.orm.jpa.JpaSystemException: org.hibernate.type.SerializationException: could not deserialize; nested exception is javax.persistence.PersistenceException: org.hibernate.type.SerializationException: could not deserialize

This is my DAO:

Code:
package com.uw.diode.dao;

import java.util.List;
import org.springframework.orm.jpa.support.JpaDaoSupport;
import org.springframework.transaction.annotation.Transactional;
import com.uw.diode.entity.LogEjecucionInformes;
import com.uw.diode.service.LogEjecucionInformesService;

@Transactional
public class LogEjecucionInformesDAO extends JpaDaoSupport implements
      LogEjecucionInformesService {

   @SuppressWarnings("unchecked")
   @Override
   public List<LogEjecucionInformes> obtenerTodos() {
      List <LogEjecucionInformes> listaLog = getJpaTemplate().find("select lei" +
            " from LogEjecucionInformes lei");
      
      return listaLog;
   }
}



The table code is:

Code:
create table ReportCabecera(
      Recab_idReportCabecera      number(10) not null,
      Recab_Clave                 varchar2(20),
      Recab_Descorta              varchar2(100),
      Recab_Deslarga              varchar2(500),
      Recab_Area                  varchar2(20),
      Recab_Disponibledesde       date,
      Recab_DisponibleHasta       date,
      Recab_Nomberuta             varchar2(200),
      Recab_Fegraba               date,
      Recab_Emgraba               varchar2(20)
   )tablespace TBLSPACEUWMVC;

   create table ReportLogEjecucion(
      RelogEje_idReportLogEjecucion     number(10) not null,
      RelogEje_idReportcabecera         number(10) not null,
      RelogEje_Formatosalida            varchar2(6),
      RelogEje_Fecha                    date,
      RelogEje_Hora                     varchar2(6),
      RelogEje_usuario                  varchar2(20)
   )tablespace TBLSPACEUWMVC;
   
   create unique Index ReportLogEjecucionIn1
   on ReportLogEjecucion(RelogEje_idReportLogEjecucion)
   tablespace tblspaceuwmvcind;
   
   create index ReportLogEjecucionIn2
   on ReportLogEjecucion(RelogEje_idReportcabecera)
   tablespace tblspaceuwmvcind;


Can you help me?

Thanks!


Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 01, 2008 4:26 am 
Hibernate Team
Hibernate Team

Joined: Fri Oct 05, 2007 4:47 pm
Posts: 2536
Location: Third rock from the Sun
You should either annotate your field or your getters;
in this case you annotate your "id" field, so hibernate will find all annotations from your fields and is not reading them from your getters: the manyToOne annotation is not read.

You should use some convention, not freely switch between styles.

_________________
Sanne
http://in.relation.to/


Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 01, 2008 5:31 am 
Newbie

Joined: Mon Sep 01, 2008 3:41 am
Posts: 19
I have changed the class to this:

Code:
package com.uw.diode.entity;

import java.io.Serializable;
import java.sql.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

@Entity
@Table(name="ReportLogEjecucion")
public class LogEjecucionInformes implements Serializable {
   
   private static final long serialVersionUID = 3865524995740400361L;

   @Id
   @GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "REPORTLOGEJECUCION_SEQ")
   @SequenceGenerator(name="REPORTLOGEJECUCION_SEQ", sequenceName = "reportlogejecucion_seq")
   @Column(name="RelogEje_idReportLogEjecucion", precision=10)
   public long id;
   
   @Column(name="RelogEje_idReportcabecera")
   @ManyToOne
   @JoinColumn(name = "RelogEje_idReportcabecera", referencedColumnName = "Recab_IdReportCabecera")
   private long idCabeceraInforme;
   
   @Column(name="RelogEje_Formatosalida", length=6)
   private String formatoSalida;
   
   @Column(name="RelogEje_Fecha")
   private Date fechaEjecucion;
   
   @Column(name="RelogEje_Hora", length=6)
   private String horaEjecucion;
   
   @Column(name="RelogEje_usuario", length=20)
   private String usuario;

   public long getId() {
      return id;
   }

   public void setId(long id) {
      this.id = id;
   }
   
   public long getIdCabeceraInforme() {
      return idCabeceraInforme;
   }
   
   public void setIdCabeceraInforme (long cabeceraInforme) {
      this.idCabeceraInforme = cabeceraInforme;
   }

   public String getFormatoSalida() {
      return formatoSalida;
   }

   public void setFormatoSalida(String formatoSalida) {
      this.formatoSalida = formatoSalida;
   }

   public Date getFechaEjecucion() {
      return fechaEjecucion;
   }

   public void setFechaEjecucion(Date fechaEjecucion) {
      this.fechaEjecucion = fechaEjecucion;
   }

   public String getHoraEjecucion() {
      return horaEjecucion;
   }

   public void setHoraEjecucion(String horaEjecucion) {
      this.horaEjecucion = horaEjecucion;
   }

   public String getUsuario() {
      return usuario;
   }

   public void setUsuario(String usuario) {
      this.usuario = usuario;
   }

}


And now the navigator throws 404 error. Why?


Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 01, 2008 7:06 am 
Hibernate Team
Hibernate Team

Joined: Fri Oct 05, 2007 4:47 pm
Posts: 2536
Location: Third rock from the Sun
I think the second one is a Spring related question;
I have no idea, you should ask to the spring forums.

_________________
Sanne
http://in.relation.to/


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.