-->
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.  [ 3 posts ] 
Author Message
 Post subject: @ManyToOne not insert collected object
PostPosted: Tue Sep 16, 2008 4:03 am 
Newbie

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

I have a ManyToOne relation.

When I try to insert a row in the table hibernate trows that the ID of the reference object is null.

ORA-01400: cannot insert NULL into ("UWTESTW"."REPORTPARAMETROS"."REPA_IDREPORTCABECERA")

That is the code

ParametrosInforme

Code:
package com.uw.diode.entity;

import static javax.persistence.FetchType.EAGER;
import static org.hibernate.annotations.NotFoundAction.IGNORE;
import java.io.Serializable;
import java.util.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;
import org.hibernate.annotations.NotFound;

@Entity
@Table(name="ReportParametros")
public class ParametrosInforme implements Serializable {

   /**
    *
    */
   private static final long serialVersionUID = 1317245204391348960L;
   
   @Id
   @GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "REPORTPARAMETROS_SEQ")
   @SequenceGenerator(name="REPORTPARAMETROS_SEQ", sequenceName = "REPORTPARAMETROS_SEQ")
   @Column(name="Repa_IdReportParametros", precision=10)
   private long id;

   @ManyToOne(fetch=EAGER)
   @JoinColumn(name="REPA_IDREPORTCABECERA", insertable=false, updatable=false)
   @NotFound(action=IGNORE)
   private CabeceraInforme cabeceraInforme;
   
   @Column(name="Repa_Clave", length=30)
   private String clave;
   
   @Column(name="Repa_Nombre", length=100)
   private String nombre;
   
   @Column(name="Repa_Tipo", length=1)
   private String tipo;
   
   @Column(name="Repa_Valor", length=1)
   private String tipoValor;
   
   @Column(name="Repa_Maximo", precision=3)
   private Long longitud;
   
   @Column(name="Repa_Fegraba")
   private Date fechaGrabacion;
   
   @Column(name="Repa_Emgraba", length=20)
   private String empleadoGrabacion;
   
   @Column(name="Repa_Femodifica")
   private Date fechaModificacion;
   
   @Column(name="Repa_Emmodifica", length=20)
   private String empleadoModificacion;

   public Date getFechaModificacion() {
      return fechaModificacion;
   }

   public void setFechaModificacion(Date fechaModificacion) {
      this.fechaModificacion = fechaModificacion;
   }

   public String getEmpleadoModificacion() {
      return empleadoModificacion;
   }

   public void setEmpleadoModificacion(String empleadoModificacion) {
      this.empleadoModificacion = empleadoModificacion;
   }

   public long getId() {
      return id;
   }

   public void setId(long id) {
      this.id = id;
   }

   public CabeceraInforme getCabeceraInforme() {
      return cabeceraInforme;
   }

   public void setCabeceraInforme(CabeceraInforme cabeceraInforme) {
      this.cabeceraInforme = cabeceraInforme;
   }

   public String getClave() {
      return clave;
   }

   public void setClave(String clave) {
      this.clave = clave;
   }

   public String getNombre() {
      return nombre;
   }

   public void setNombre(String nombre) {
      this.nombre = nombre;
   }

   public String getTipo() {
      return tipo;
   }

   public void setTipo(String tipo) {
      this.tipo = tipo;
   }

   public String getTipoValor() {
      return tipoValor;
   }

   public void setTipoValor(String tipoValor) {
      this.tipoValor = tipoValor;
   }

   public Long getLongitud() {
      return longitud;
   }

   public void setLongitud(Long longitud) {
      this.longitud = longitud;
   }

   public Date getFechaGrabacion() {
      return fechaGrabacion;
   }

   public void setFechaGrabacion(Date fechaGrabacion) {
      this.fechaGrabacion = fechaGrabacion;
   }

   public String getEmpleadoGrabacion() {
      return empleadoGrabacion;
   }

   public void setEmpleadoGrabacion(String empleadoGrabacion) {
      this.empleadoGrabacion = empleadoGrabacion;
   }

}


CabeceraInforme

Code:
package com.uw.diode.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import static javax.persistence.FetchType.EAGER;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import org.hibernate.annotations.NotFound;
import com.uw.diode.util.Tools;
import static org.hibernate.annotations.NotFoundAction.IGNORE;;

@Entity
@Table(name="ReportCabecera")
public class CabeceraInforme implements Serializable {
   
   /**
    *
    */
   private static final long serialVersionUID = -3045888821211416269L;

   @Id
   @GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "REPORTCABECERA_SEQ")
   @SequenceGenerator(name="REPORTCABECERA_SEQ", sequenceName = "reportcabecera_seq")
   @Column(name="Recab_IdReportCabecera", precision=10)
   private long id;

   @Column(name="Recab_Clave", length=20)
   private String nombre;
   
   @Column(name="Recab_Descorta", length=100)
   private String descripcionCorta;
   
   @Column(name="Recab_Deslarga", length=500)
   private String descripcionLarga;
   
   @Column(name="Recab_Area", length=20)
   private String area;
   
   @Column(name="Recab_Disponibledesde")
   private Date fechaInicio;
   
   @Column(name="Recab_DisponibleHasta")
   private Date fechaFin;

   @Column(name="Recab_Nomberuta", length=200)
   private String nombreRuta;
   
   @Column(name="Recab_Fegraba")
   private Date fechaGrabacion;
   
   @Column(name="Recab_Emgraba", length=20)
   private String empleadoGrabacion;
   
   @Column(name="Recab_Femodifica")
   private Date fechaModificacion;
   
   @Column(name="Recab_Emmodifica", length=20)
   private String empleadoModificación;
   
   @OneToMany(fetch=EAGER)
   @JoinColumn(name="RELOGEJE_IDREPORTCABECERA")
   @NotFound(action=IGNORE)
   @OrderBy("fechaEjecucion desc")
   private List<LogEjecucionInformes> logEjecucionInformes;
   
   public Date getFechaModificacion() {
      return fechaModificacion;
   }

   public void setFechaModificacion(Date fechaModificacion) {
      this.fechaModificacion = fechaModificacion;
   }

   public String getEmpleadoModificación() {
      return empleadoModificación;
   }

   public void setEmpleadoModificación(String empleadoModificación) {
      this.empleadoModificación = empleadoModificación;
   }

   public List<LogEjecucionInformes> getLogEjecucionInformes() {
      return logEjecucionInformes;
   }

   public void setLogEjecucionInformes(
         List<LogEjecucionInformes> logEjecucionInformes) {
      this.logEjecucionInformes = logEjecucionInformes;
   }

   public long getId() {
      return id;
   }

   public void setId(long id) {
      this.id = id;
   }

   public String getNombre() {
      return nombre;
   }

   public void setNombre(String nombre) {
      this.nombre = nombre;
   }

   public String getDescripcionCorta() {
      return descripcionCorta;
   }

   public void setDescripcionCorta(String descripcionCorta) {
      this.descripcionCorta = descripcionCorta;
   }

   public String getDescripcionLarga() {
      return descripcionLarga;
   }

   public void setDescripcionLarga(String descripcionLarga) {
      this.descripcionLarga = descripcionLarga;
   }

   public String getArea() {
      return area;
   }

   public void setArea(String area) {
      this.area = area;
   }

   public Date getFechaInicio() {      
      return fechaInicio;
   }
   
   public String getFechaInicioFormateada()
   {
      return Tools.convertirFechaAString(getFechaInicio());
   }

   public void setFechaInicio(Date fechaInicio) {
      this.fechaInicio = fechaInicio;
   }

   public Date getFechaFin() {
      return fechaFin;
   }
   
   public String getFechaFinFormateada()
   {
      return Tools.convertirFechaAString(getFechaFin());
   }

   public void setFechaFin(Date fechaFin) {
      this.fechaFin = fechaFin;
   }

   public String getNombreRuta() {
      return nombreRuta;
   }

   public void setNombreRuta(String nombreRuta) {
      this.nombreRuta = nombreRuta;
   }

   public Date getFechaGrabacion() {
      return fechaGrabacion;
   }
   
   public String getFechaGrabacionFormateada ()
   {
      return Tools.convertirFechaHoraAString(getFechaGrabacion());
   }

   public void setFechaGrabacion(Date fechaGrabacion) {
      this.fechaGrabacion = fechaGrabacion;
   }

   public String getEmpleadoGrabacion() {
      return empleadoGrabacion;
   }

   public void setEmpleadoGrabacion(String empleadoGrabacion) {
      this.empleadoGrabacion = empleadoGrabacion;
   }
   
   public int getNumEjecuciones()
   {
      if (this.logEjecucionInformes != null)
         return this.logEjecucionInformes.size();
      else
         return 0;
   }
   
   public Date getFechaUltimaEjecucion()
   {
      Date ultimaEjecucion = null;
            
      if (logEjecucionInformes != null && logEjecucionInformes.size() > 0 && logEjecucionInformes.get(0) != null)
         ultimaEjecucion = ((LogEjecucionInformes)logEjecucionInformes.get(0)).getFechaEjecucion();
      
      return ultimaEjecucion;
   }
   
   public String getFechaUltimaEjecucionFormateada()
   {
      return Tools.convertirFechaAString(getFechaUltimaEjecucion());
   }
   
   public String getFechaHoraUltimaEjecucionFormateada()
   {
      return Tools.convertirFechaHoraAString(getFechaUltimaEjecucion());
   }
   
   
}


What is the problem?

Thank you,

Praedos[/b]


Top
 Profile  
 
 Post subject: re:
PostPosted: Tue Sep 16, 2008 4:35 am 
Newbie

Joined: Fri Aug 29, 2008 9:07 am
Posts: 16
Location: edinburgh/zielona gora
could you post you example main method please?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Sep 16, 2008 9:27 am 
Newbie

Joined: Mon Sep 01, 2008 3:41 am
Posts: 19
DAO query:

Code:
public List<ParametrosInforme> findAll(long ci) {
      List<ParametrosInforme> listaParametros = getJpaTemplate().find("select pi" +
            " from ParametrosInforme pi, IN " +
" (pi.cabeceraInforme) ci" +
            " where ci.id = ?1",ci);
      
         return listaParametros;
   }


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 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.