Multilevel Inheritance

View: New views
6 Messages — Rating Filter:   Alert me  

Multilevel Inheritance

by juaninf :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Pleas help my , I want implement multilevel inheritance

see :

-ProductVenta
   -ProductX
      -X1
      -X2
   -ProductY

with extends, and
@Inheritance
@DiscriminatorColumn
@PrimaryKeyJoinColumn
@DiscriminatorValue, annotations

here my code

@Entity
@Table(name = "fid_producto_venta", catalog = "fid", schema = "")
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(discriminatorType=DiscriminatorType.STRING, name="tipo")
@NamedQueries({@NamedQuery(name = "FidProductoVenta.findAll", query = "SELECT f FROM FidProductoVenta f"), @NamedQuery(name = "FidProductoVenta.findById", query = "SELECT f FROM FidProductoVenta f WHERE f.id = :id"), @NamedQuery(name = "FidProductoVenta.findByCreatedAt", query = "SELECT f FROM FidProductoVenta f WHERE f.createdAt = :createdAt"), @NamedQuery(name = "FidProductoVenta.findByUpdatedAt", query = "SELECT f FROM FidProductoVenta f WHERE f.updatedAt = :updatedAt")})
public class FidProductoVenta implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id")
    protected Integer id;
    @Column(name = "created_at")
    @Temporal(TemporalType.TIMESTAMP)
    private Date createdAt;
    @Column(name = "updated_at")
    @Temporal(TemporalType.TIMESTAMP)
    private Date updatedAt;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "fidProductoVenta")
    private FidProductoServicio fidProductoServicio;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "fidProductoVenta")
    private FidProductoMercaderia fidProductoMercaderia;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "fidProductoVentaId")
    private List<FidItemVenta> fidItemVentaList;


////////////////////////////



@Entity
@Table(name = "fid_producto_servicio", catalog = "fid", schema = "")
@PrimaryKeyJoinColumn(name="fid_producto_venta_id")
//para Impresion y Edicion
//@Inheritance(strategy=InheritanceType.JOINED)
//@DiscriminatorColumn(discriminatorType=DiscriminatorType.STRING, name="tipo")
///
@DiscriminatorValue("servicio")
@NamedQueries({@NamedQuery(name = "FidProductoServicio.findAll", query = "SELECT f FROM FidProductoServicio f"), @NamedQuery(name = "FidProductoServicio.findByFidProductoVentaId", query = "SELECT f FROM FidProductoServicio f WHERE f.id = :fidProductoVentaId"), @NamedQuery(name = "FidProductoServicio.findByFechaEntrada", query = "SELECT f FROM FidProductoServicio f WHERE f.fechaEntrada = :fechaEntrada"), @NamedQuery(name = "FidProductoServicio.findByFechaSalida", query = "SELECT f FROM FidProductoServicio f WHERE f.fechaSalida = :fechaSalida"), @NamedQuery(name = "FidProductoServicio.findByCreatedAt", query = "SELECT f FROM FidProductoServicio f WHERE f.createdAt = :createdAt"), @NamedQuery(name = "FidProductoServicio.findByUpdatedAt", query = "SELECT f FROM FidProductoServicio f WHERE f.updatedAt = :updatedAt")})
public class FidProductoServicio extends FidProductoVenta implements Serializable {
    private static final long serialVersionUID = 1L;
   
    @Column(name = "fechaEntrada")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaEntrada;
    @Column(name = "fechaSalida")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaSalida;
    @Column(name = "created_at")
    @Temporal(TemporalType.TIMESTAMP)
    private Date createdAt;
    @Column(name = "updated_at")
    @Temporal(TemporalType.TIMESTAMP)
    private Date updatedAt;
   
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "fidProductoServicio")
    public FidServicioDefinidoImpresion fidServicioDefinidoImpresion;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "fidProductoServicio")
    private FidServicioDefinidoEdicion fidServicioDefinidoEdicion;
    @JoinColumn(name = "fid_producto_venta_id", referencedColumnName = "id", insertable = false, updatable = false)
    @OneToOne(optional = false)
    private FidProductoVenta fidProductoVenta;
    @JoinColumn(name = "fid_tipo_cliente_id", referencedColumnName = "id")
    @ManyToOne
    private FidTipoCliente fidTipoClienteId;
    @JoinColumn(name = "fid_dimension_foto_id", referencedColumnName = "id")
    @ManyToOne
    private FidDimensionFoto fidDimensionFotoId;



/////////////////////////////////////



@Entity
@Table(name = "fid_servicio_definido_impresion", catalog = "fid", schema = "")
@PrimaryKeyJoinColumn(name="fid_producto_servicio_id")
@DiscriminatorValue("servicioImpresion")
//@NamedQueries({@NamedQuery(name = "FidServicioDefinidoImpresion.findAll", query = "SELECT f FROM FidServicioDefinidoImpresion f"), @NamedQuery(name = "FidServicioDefinidoImpresion.findByFidProductoServicioFidProductoVentaId", query = "SELECT f FROM FidServicioDefinidoImpresion f WHERE f.id = :fidProductoServicioFidProductoVentaId"), @NamedQuery(name = "FidServicioDefinidoImpresion.findByPrecio", query = "SELECT f FROM FidServicioDefinidoImpresion f WHERE f.precio = :precio"), @NamedQuery(name = "FidServicioDefinidoImpresion.findByOfertar", query = "SELECT f FROM FidServicioDefinidoImpresion f WHERE f.ofertar = :ofertar"), @NamedQuery(name = "FidServicioDefinidoImpresion.findByCreatedAt", query = "SELECT f FROM FidServicioDefinidoImpresion f WHERE f.createdAt = :createdAt"), @NamedQuery(name = "FidServicioDefinidoImpresion.findByUpdatedAt", query = "SELECT f FROM FidServicioDefinidoImpresion f WHERE f.updatedAt = :updatedAt")})
public class FidServicioDefinidoImpresion extends FidProductoServicio implements Serializable {
    private static final long serialVersionUID = 1L;
   
    @Column(name = "precio")
    private Double precio;
    @Column(name = "ofertar")
    private Boolean ofertar;
    @Column(name = "created_at")
    @Temporal(TemporalType.TIMESTAMP)
    private Date createdAt;
    @Column(name = "updated_at")
    @Temporal(TemporalType.TIMESTAMP)
    private Date updatedAt;
    @JoinColumn(name = "fid_producto_servicio_id ", referencedColumnName = "id", insertable = false, updatable = false)
    @OneToOne(optional = false)
    public FidProductoServicio fidProductoServicio;
    @JoinColumn(name = "fid_complejidad_impresion_id", referencedColumnName = "id")
    @ManyToOne
    private FidComplejidadImpresion fidComplejidadImpresionId;
    @JoinColumn(name = "fid_bobina_id", referencedColumnName = "id")
    @ManyToOne
    private FidBobina fidBobinaId;

I obtained the follow error


Internal Exception: Exception [TOPLINK-7154] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.ValidationException
Exception Description: The attribute [fidServicioDefinidoImpresion] in entity class [class com.jomijushi.fid.dominio.FidProductoServicio] has a mappedBy value of [fidProductoServicio] which does not exist in its owning entity class [class com.jomijushi.fid.dominio.FidServicioDefinidoImpresion]. If the owning entity class is a @MappedSuperclass, this is invalid, and your attribute should reference the correct subclass.
        at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:643)
        at oracle.toplink.essentials.internal.ejb.cmp3.JavaSECMPInitializer.callPredeploy(JavaSECMPInitializer.java:171)
        at oracle.toplink.essentials.internal.ejb.cmp3.JavaSECMPInitializer.initPersistenceUnits(JavaSECMPInitializer.java:239)
        at oracle.toplink.essentials.internal.ejb.cmp3.JavaSECMPInitializer.initialize(JavaSECMPInitializer.java:255)
        at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createEntityManagerFactory(EntityManagerFactoryProvider.java:155)
        ... 3 more
Caused by: Exception [TOPLINK-28018] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.EntityManagerSetupException
Exception Description: predeploy for PersistenceUnit [fid.netPU] failed.
Internal Exception: Exception [TOPLINK-7154] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.ValidationException
Exception Description: The attribute [fidServicioDefinidoImpresion] in entity class [class com.jomijushi.fid.dominio.FidProductoServicio] has a mappedBy value of [fidProductoServicio] which does not exist in its owning entity class [class com.jomijushi.fid.dominio.FidServicioDefinidoImpresion]. If the owning entity class is a @MappedSuperclass, this is invalid, and your attribute should reference the correct subclass.
        at oracle.toplink.essentials.exceptions.EntityManagerSetupException.predeployFailed(EntityManagerSetupException.java:228)
        ... 8 more
Caused by: Exception [TOPLINK-7154] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.ValidationException
Exception Description: The attribute [fidServicioDefinidoImpresion] in entity class [class com.jomijushi.fid.dominio.FidProductoServicio] has a mappedBy value of [fidProductoServicio] which does not exist in its owning entity class [class com.jomijushi.fid.dominio.FidServicioDefinidoImpresion]. If the owning entity class is a @MappedSuperclass, this is invalid, and your attribute should reference the correct subclass.
        at oracle.toplink.essentials.exceptions.ValidationException.noMappedByAttributeFound(ValidationException.java:1133)
        at oracle.toplink.essentials.internal.ejb.cmp3.metadata.MetadataValidator.throwNoMappedByAttributeFound(MetadataValidator.java:312)
        at oracle.toplink.essentials.internal.ejb.cmp3.metadata.accessors.RelationshipAccessor.getOwningMapping(RelationshipAccessor.java:142)
        at oracle.toplink.essentials.internal.ejb.cmp3.metadata.accessors.OneToOneAccessor.process(OneToOneAccessor.java:137)
        at oracle.toplink.essentials.internal.ejb.cmp3.metadata.accessors.RelationshipAccessor.processRelationship(RelationshipAccessor.java:290)
        at oracle.toplink.essentials.internal.ejb.cmp3.metadata.MetadataProject.processRelationshipDescriptors(MetadataProject.java:579)
        at oracle.toplink.essentials.internal.ejb.cmp3.metadata.MetadataProject.process(MetadataProject.java:512)
        at oracle.toplink.essentials.internal.ejb.cmp3.metadata.MetadataProcessor.processAnnotations(MetadataProcessor.java:246)
        at oracle.toplink.essentials.ejb.cmp3.persistence.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:370)
        at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:607)
        ... 7 more


 The following providers:
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
Returned null to createEntityManagerFactory.

        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:154)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
        at com.jomijushi.fid.interfaz.Main.main(Main.java:51)
Java Result: 1

please help me


Re: Multilevel Inheritance

by juaninf :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

help me please

Re: Multilevel Inheritance

by James Sutherland :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

The error seems odd, as you seem to have the inverse relationship defined.

It could be related to the "insertable = false, updatable = false" you have in the inverses @JoinColumn, this seems odd as you don't appear to be mapped this foreign key elsewhere.  Try removing it, or defining the @JoinColumn on the source mapping.

You may also wish to try upgrading to EclipseLink and see if the same error occurs.

Re: Multilevel Inheritance

by juaninf :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I try, nothing, but see you this code

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.jomijushi.fid.dominio;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author miguel
 */
@Entity
@Table(name = "fid_producto_venta", catalog = "fid", schema = "")
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(discriminatorType=DiscriminatorType.STRING, name="tipo")
@NamedQueries({@NamedQuery(name = "FidProductoVenta.findAll", query = "SELECT f FROM FidProductoVenta f"), @NamedQuery(name = "FidProductoVenta.findById", query = "SELECT f FROM FidProductoVenta f WHERE f.id = :id"), @NamedQuery(name = "FidProductoVenta.findByCreatedAt", query = "SELECT f FROM FidProductoVenta f WHERE f.createdAt = :createdAt"), @NamedQuery(name = "FidProductoVenta.findByUpdatedAt", query = "SELECT f FROM FidProductoVenta f WHERE f.updatedAt = :updatedAt")})
public class FidProductoVenta implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id")
    protected Integer id;
    @Column(name = "created_at")
    @Temporal(TemporalType.TIMESTAMP)
    private Date createdAt;
    @Column(name = "updated_at")
    @Temporal(TemporalType.TIMESTAMP)
    private Date updatedAt;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "fidProductoVenta")
    private FidProductoServicio fidProductoServicio;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "fidProductoVenta")
    private FidProductoMercaderia fidProductoMercaderia;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "fidProductoVentaId")
    private List<FidItemVenta> fidItemVentaList;

    public FidProductoVenta() {
    }

    public FidProductoVenta(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return id;
    }

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

    public Date getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    public FidProductoServicio getFidProductoServicio() {
        return fidProductoServicio;
    }

    public void setFidProductoServicio(FidProductoServicio fidProductoServicio) {
        this.fidProductoServicio = fidProductoServicio;
    }

    public FidProductoMercaderia getFidProductoMercaderia() {
        return fidProductoMercaderia;
    }

    public void setFidProductoMercaderia(FidProductoMercaderia fidProductoMercaderia) {
        this.fidProductoMercaderia = fidProductoMercaderia;
    }

    public List<FidItemVenta> getFidItemVentaList() {
        return fidItemVentaList;
    }

    public void setFidItemVentaList(List<FidItemVenta> fidItemVentaList) {
        this.fidItemVentaList = fidItemVentaList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof FidProductoVenta)) {
            return false;
        }
        FidProductoVenta other = (FidProductoVenta) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.jomijushi.fid.dominio.FidProductoVenta[id=" + id + "]";
    }

}

///////////////////////////////////

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.jomijushi.fid.dominio;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author jcgrados
 */
@Entity
@Table(name = "fid_producto_servicio", catalog = "fid", schema = "")
@PrimaryKeyJoinColumn(name="fid_producto_venta_id")
//para Impresion y Edicion
//@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(discriminatorType=DiscriminatorType.STRING, name="tipo")
///
@DiscriminatorValue("servicio")
@NamedQueries({@NamedQuery(name = "FidProductoServicio.findAll", query = "SELECT f FROM FidProductoServicio f"), @NamedQuery(name = "FidProductoServicio.findByFidProductoVentaId", query = "SELECT f FROM FidProductoServicio f WHERE f.id = :fidProductoVentaId"), @NamedQuery(name = "FidProductoServicio.findByFechaEntrada", query = "SELECT f FROM FidProductoServicio f WHERE f.fechaEntrada = :fechaEntrada"), @NamedQuery(name = "FidProductoServicio.findByFechaSalida", query = "SELECT f FROM FidProductoServicio f WHERE f.fechaSalida = :fechaSalida"), @NamedQuery(name = "FidProductoServicio.findByCreatedAt", query = "SELECT f FROM FidProductoServicio f WHERE f.createdAt = :createdAt"), @NamedQuery(name = "FidProductoServicio.findByUpdatedAt", query = "SELECT f FROM FidProductoServicio f WHERE f.updatedAt = :updatedAt")})
public class FidProductoServicio extends FidProductoVenta implements Serializable {
    private static final long serialVersionUID = 1L;

    @Column(name = "fechaEntrada")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaEntrada;
    @Column(name = "fechaSalida")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaSalida;
    @Column(name = "created_at")
    @Temporal(TemporalType.TIMESTAMP)
    private Date createdAt;
    @Column(name = "updated_at")
    @Temporal(TemporalType.TIMESTAMP)
    private Date updatedAt;

   /* @OneToOne(cascade = CascadeType.ALL, mappedBy = "fidProductoServicio")
    private FidServicioDefinidoImpresion fidServicioDefinidoImpresion;*/
  /*  @OneToOne(cascade = CascadeType.ALL, mappedBy = "fidProductoServicio")
    private FidServicioDefinidoEdicion fidServicioDefinidoEdicion;*/
    @JoinColumn(name = "fid_producto_venta_id", referencedColumnName = "id", insertable = false, updatable = false)
    @OneToOne(optional = false)
    private FidProductoVenta fidProductoVenta;
    @JoinColumn(name = "fid_tipo_cliente_id", referencedColumnName = "id")
    @ManyToOne
    private FidTipoCliente fidTipoClienteId;
    @JoinColumn(name = "fid_dimension_foto_id", referencedColumnName = "id")
    @ManyToOne
    private FidDimensionFoto fidDimensionFotoId;

    public FidProductoServicio() {
    }

    public FidProductoServicio(Integer fidProductoVentaId) {
        this.id = fidProductoVentaId;
    }

    public Integer getFidProductoVentaId() {
        return this.id;
    }

    public void setFidProductoVentaId(Integer fidProductoVentaId) {
        this.id = fidProductoVentaId;
    }

    public Date getFechaEntrada() {
        return fechaEntrada;
    }

    public void setFechaEntrada(Date fechaEntrada) {
        this.fechaEntrada = fechaEntrada;
    }

    public Date getFechaSalida() {
        return fechaSalida;
    }

    public void setFechaSalida(Date fechaSalida) {
        this.fechaSalida = fechaSalida;
    }

    public Date getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

   /* public FidServicioDefinidoImpresion getFidServicioDefinidoImpresion() {
        return fidServicioDefinidoImpresion;
    }

    public void setFidServicioDefinidoImpresion(FidServicioDefinidoImpresion fidServicioDefinidoImpresion) {
        this.fidServicioDefinidoImpresion = fidServicioDefinidoImpresion;
    }*/

 /*   public FidServicioDefinidoEdicion getFidServicioDefinidoEdicion() {
        return fidServicioDefinidoEdicion;
    }

    public void setFidServicioDefinidoEdicion(FidServicioDefinidoEdicion fidServicioDefinidoEdicion) {
        this.fidServicioDefinidoEdicion = fidServicioDefinidoEdicion;
    }*/

    public FidProductoVenta getFidProductoVenta() {
        return fidProductoVenta;
    }

    public void setFidProductoVenta(FidProductoVenta fidProductoVenta) {
        this.fidProductoVenta = fidProductoVenta;
    }

    public FidTipoCliente getFidTipoClienteId() {
        return fidTipoClienteId;
    }

    public void setFidTipoClienteId(FidTipoCliente fidTipoClienteId) {
        this.fidTipoClienteId = fidTipoClienteId;
    }

    public FidDimensionFoto getFidDimensionFotoId() {
        return fidDimensionFotoId;
    }

    public void setFidDimensionFotoId(FidDimensionFoto fidDimensionFotoId) {
        this.fidDimensionFotoId = fidDimensionFotoId;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (this.id != null ? this.id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof FidProductoServicio)) {
            return false;
        }
        FidProductoServicio other = (FidProductoServicio) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.jomijushi.fid.dominio.FidProductoServicio[fidProductoVentaId=" + this.id + "]";
    }

}

/////////////////////////////////////

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.jomijushi.fid.dominio;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author miguel
 */
@Entity
@Table(name = "fid_servicio_definido_impresion", catalog = "fid", schema = "")
@PrimaryKeyJoinColumn(name="fid_producto_venta_id")
@DiscriminatorValue("servicioImpresion")
//@NamedQueries({@NamedQuery(name = "FidServicioDefinidoImpresion.findAll", query = "SELECT f FROM FidServicioDefinidoImpresion f"), @NamedQuery(name = "FidServicioDefinidoImpresion.findByFidProductoServicioFidProductoVentaId", query = "SELECT f FROM FidServicioDefinidoImpresion f WHERE f.id = :fidProductoServicioFidProductoVentaId"), @NamedQuery(name = "FidServicioDefinidoImpresion.findByPrecio", query = "SELECT f FROM FidServicioDefinidoImpresion f WHERE f.precio = :precio"), @NamedQuery(name = "FidServicioDefinidoImpresion.findByOfertar", query = "SELECT f FROM FidServicioDefinidoImpresion f WHERE f.ofertar = :ofertar"), @NamedQuery(name = "FidServicioDefinidoImpresion.findByCreatedAt", query = "SELECT f FROM FidServicioDefinidoImpresion f WHERE f.createdAt = :createdAt"), @NamedQuery(name = "FidServicioDefinidoImpresion.findByUpdatedAt", query = "SELECT f FROM FidServicioDefinidoImpresion f WHERE f.updatedAt = :updatedAt")})
public class FidServicioDefinidoImpresion extends FidProductoServicio implements Serializable {
    private static final long serialVersionUID = 1L;
   
    @Column(name = "precio")
    private Double precio;
    @Column(name = "ofertar")
    private Boolean ofertar;
    @Column(name = "created_at")
    @Temporal(TemporalType.TIMESTAMP)
    private Date createdAt;
    @Column(name = "updated_at")
    @Temporal(TemporalType.TIMESTAMP)
    private Date updatedAt;
    @JoinColumn(name = "fid_producto_servicio_id ", referencedColumnName = "id", insertable = false, updatable = false)
    @OneToOne(optional = false)
    public FidProductoServicio fidProductoServicio;
    @JoinColumn(name = "fid_complejidad_impresion_id", referencedColumnName = "id")
    @ManyToOne
    private FidComplejidadImpresion fidComplejidadImpresionId;
    @JoinColumn(name = "fid_bobina_id", referencedColumnName = "id")
    @ManyToOne
    private FidBobina fidBobinaId;

    @JoinColumn(name = "fid_producto_venta_id", referencedColumnName = "id", insertable = false, updatable = false)
    @OneToOne(optional = false)
    private FidProductoVenta fidProductoVenta;

    public FidServicioDefinidoImpresion() {
    }

      public FidProductoVenta getFidProductoVenta() {
        return fidProductoVenta;
    }

    public void setFidProductoVenta(FidProductoVenta fidProductoVenta) {
        this.fidProductoVenta = fidProductoVenta;
    }
   
    @Override
     public Integer getFidProductoVentaId() {
        return this.id;
    }

    @Override
    public void setFidProductoVentaId(Integer fidProductoVentaId) {
        this.id = fidProductoVentaId;
    }
   
    public FidServicioDefinidoImpresion(Integer fidProductoServicioFidProductoVentaId) {
        this.id = fidProductoServicioFidProductoVentaId;
    }

    public Integer getFidProductoServicioFidProductoVentaId() {
        return this.id;
    }

    public void setFidProductoServicioFidProductoVentaId(Integer fidProductoServicioFidProductoVentaId) {
        this.id = fidProductoServicioFidProductoVentaId;
    }

    public Double getPrecio() {
        return precio;
    }

    public void setPrecio(Double precio) {
        this.precio = precio;
    }

    public Boolean getOfertar() {
        return ofertar;
    }

    public void setOfertar(Boolean ofertar) {
        this.ofertar = ofertar;
    }

    public Date getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    public FidProductoServicio getFidProductoServicio() {
        return fidProductoServicio;
    }

    public void setFidProductoServicio(FidProductoServicio fidProductoServicio) {
        this.fidProductoServicio = fidProductoServicio;
    }

    public FidComplejidadImpresion getFidComplejidadImpresionId() {
        return fidComplejidadImpresionId;
    }

    public void setFidComplejidadImpresionId(FidComplejidadImpresion fidComplejidadImpresionId) {
        this.fidComplejidadImpresionId = fidComplejidadImpresionId;
    }

    public FidBobina getFidBobinaId() {
        return fidBobinaId;
    }

    public void setFidBobinaId(FidBobina fidBobinaId) {
        this.fidBobinaId = fidBobinaId;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof FidServicioDefinidoImpresion)) {
            return false;
        }
        FidServicioDefinidoImpresion other = (FidServicioDefinidoImpresion) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.jomijushi.fid.dominio.FidServicioDefinidoImpresion[fidProductoServicioFidProductoVentaId=" + id + "]";
    }

}

My error is

init:
deps-jar:
compile-single:
run-single:
****Crearemos un nuevo Cliente
[TopLink Info]: 2009.09.10 01:00:36.613--ServerSession(21480956)--TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))
[TopLink Info]: 2009.09.10 01:00:37.352--ServerSession(21480956)--file:/home/juan/webs/fid.net/build/classes/-fid.netPU login successful
[TopLink Warning]: 2009.09.10 01:00:37.528--UnitOfWork(25675100)--Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'fid_producto_venta_id' in 'field list'
Error Code: 1054
Call: INSERT INTO fid.fid_servicio_definido_impresion (ofertar, precio, fid_complejidad_impresion_id, fid_bobina_id, fid_producto_venta_id) VALUES (?, ?, ?, ?, ?)
        bind => [true, 10.0, null, null, 6]
Query: InsertObjectQuery(com.jomijushi.fid.dominio.FidServicioDefinidoImpresion[fidProductoServicioFidProductoVentaId=6])
Exception in thread "main" javax.persistence.RollbackException: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'fid_producto_venta_id' in 'field list'
Error Code: 1054
Call: INSERT INTO fid.fid_servicio_definido_impresion (ofertar, precio, fid_complejidad_impresion_id, fid_bobina_id, fid_producto_venta_id) VALUES (?, ?, ?, ?, ?)
        bind => [true, 10.0, null, null, 6]
Query: InsertObjectQuery(com.jomijushi.fid.dominio.FidServicioDefinidoImpresion[fidProductoServicioFidProductoVentaId=6])
        at oracle.toplink.essentials.internal.ejb.cmp3.transaction.base.EntityTransactionImpl.commit(EntityTransactionImpl.java:120)
        at oracle.toplink.essentials.internal.ejb.cmp3.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:60)
        at com.jomijushi.fid.interfaz.Main.crearFidServicioDefinidoEdicion(Main.java:781)
        at com.jomijushi.fid.interfaz.Main.main(Main.java:119)
Caused by: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'fid_producto_venta_id' in 'field list'
Error Code: 1054
Call: INSERT INTO fid.fid_servicio_definido_impresion (ofertar, precio, fid_complejidad_impresion_id, fid_bobina_id, fid_producto_venta_id) VALUES (?, ?, ?, ?, ?)
        bind => [true, 10.0, null, null, 6]
Query: InsertObjectQuery(com.jomijushi.fid.dominio.FidServicioDefinidoImpresion[fidProductoServicioFidProductoVentaId=6])
        at oracle.toplink.essentials.exceptions.DatabaseException.sqlException(DatabaseException.java:311)
        at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:654)
        at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeNoSelect(DatabaseAccessor.java:703)
        at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:492)
        at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:452)
        at oracle.toplink.essentials.internal.sessions.AbstractSession.executeCall(AbstractSession.java:690)
        at oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)
        at oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.insertObject(DatasourceCallQueryMechanism.java:337)
        at oracle.toplink.essentials.internal.queryframework.StatementQueryMechanism.insertObject(StatementQueryMechanism.java:191)
        at oracle.toplink.essentials.internal.queryframework.StatementQueryMechanism.insertObject(StatementQueryMechanism.java:205)
        at oracle.toplink.essentials.internal.queryframework.DatabaseQueryMechanism.insertObjectForWrite(DatabaseQueryMechanism.java:564)
        at oracle.toplink.essentials.queryframework.InsertObjectQuery.executeCommit(InsertObjectQuery.java:89)
        at oracle.toplink.essentials.internal.queryframework.DatabaseQueryMechanism.performUserDefinedWrite(DatabaseQueryMechanism.java:750)
        at oracle.toplink.essentials.internal.queryframework.DatabaseQueryMechanism.performUserDefinedInsert(DatabaseQueryMechanism.java:714)
        at oracle.toplink.essentials.internal.queryframework.DatabaseQueryMechanism.insertObjectForWriteWithChangeSet(DatabaseQueryMechanism.java:602)
        at oracle.toplink.essentials.queryframework.WriteObjectQuery.executeCommitWithChangeSet(WriteObjectQuery.java:162)
        at oracle.toplink.essentials.internal.queryframework.DatabaseQueryMechanism.executeWriteWithChangeSet(DatabaseQueryMechanism.java:390)
        at oracle.toplink.essentials.queryframework.WriteObjectQuery.executeDatabaseQuery(WriteObjectQuery.java:109)
        at oracle.toplink.essentials.queryframework.DatabaseQuery.execute(DatabaseQuery.java:628)
        at oracle.toplink.essentials.queryframework.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:555)
        at oracle.toplink.essentials.queryframework.ObjectLevelModifyQuery.executeInUnitOfWorkObjectLevelModifyQuery(ObjectLevelModifyQuery.java:138)
        at oracle.toplink.essentials.queryframework.ObjectLevelModifyQuery.executeInUnitOfWork(ObjectLevelModifyQuery.java:110)
        at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2233)
        at oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:952)
        at oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:909)
        at oracle.toplink.essentials.internal.sessions.CommitManager.commitNewObjectsForClassWithChangeSet(CommitManager.java:269)
        at oracle.toplink.essentials.internal.sessions.CommitManager.commitAllObjectsWithChangeSet(CommitManager.java:190)
        at oracle.toplink.essentials.internal.sessions.AbstractSession.writeAllObjectsWithChangeSet(AbstractSession.java:2657)
        at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.commitToDatabase(UnitOfWorkImpl.java:1044)
        at oracle.toplink.essentials.internal.ejb.cmp3.base.RepeatableWriteUnitOfWork.commitToDatabase(RepeatableWriteUnitOfWork.java:403)
        at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithChangeSet(UnitOfWorkImpl.java:1126)
        at oracle.toplink.essentials.internal.ejb.cmp3.base.RepeatableWriteUnitOfWork.commitRootUnitOfWork(RepeatableWriteUnitOfWork.java:107)
        at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.commitAndResume(UnitOfWorkImpl.java:856)
        at oracle.toplink.essentials.internal.ejb.cmp3.transaction.base.EntityTransactionImpl.commit(EntityTransactionImpl.java:102)
        ... 3 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'fid_producto_venta_id' in 'field list'
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.Util.getInstance(Util.java:381)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2019)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1937)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1922)
        at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:647)
        ... 35 more
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)


PLEASE HELP MYYYYYYYYYYYYYYYYY

Re: Multilevel Inheritance

by juaninf :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

hi?

Re: Multilevel Inheritance

by juaninf :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

help please