Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/10/2009, 10:43
nick_name
 
Fecha de Ingreso: marzo-2009
Mensajes: 37
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: JPA Toplink y relaciones de tablas

Hola.

Les pongo parte del codigo de las entidades:

Requisicion
Código:
    OneToMany(mappedBy = "requisicion")
    private Collection<TablaComparativa> tablaComparativaCollection;
TablaComparativa
Código:
    JoinColumn(name = "REQUISICION", referencedColumnName = "ID")
    ManyToOne
    private Requisicion requisicion;

ESTO LO COMENTO POR QUE NO LO ENTIENDO
    OneToMany(mappedBy = "tablaComparativa")
    private Collection<TablaComparativa> tablaComparativaCollection;
    JoinColumn(name = "TABLA_COMPARATIVA", referencedColumnName = "ID")
    ManyToOne
    private TablaComparativa tablaComparativa;

    OneToMany(mappedBy = "tablaComparativa")
    private Collection<TablaComparativaDetalle> tablaComparativaDetalleCollection;
TablaComparativaDetalle
Código:
    OneToMany(mappedBy = "tablaComparativaDetalle")
    private Collection<CostoTablaComparativa> costoTablaComparativaCollection;
    JoinColumn(name = "TABLA_COMPARATIVA", referencedColumnName = "ID")
    ManyToOne
    private TablaComparativa tablaComparativa;
CostoTablaComparativa
Código:
    JoinColumn(name = "PROVEEDOR", referencedColumnName = "RFC")
    ManyToOne
    private Proveedor proveedor;
    JoinColumn(name = "TABLA_COMPARATIVA_DETALLE", referencedColumnName = "ID")
    ManyToOne
    private TablaComparativaDetalle tablaComparativaDetalle;
Como se daran cuenta es una relacion de 4 tablas diferentes de forma lineal haber si me explico.
CostoTablaComparativa apunta a TablaComparativaDetalle esta apunta a TablaComparativa y esta a la de Requisicion.

Checando el log del servidor manda varios errores y son en este orden:
Código PHP:
Exception DescriptionThe JoinColumns on the annotated element [private Entidades.TablaComparativa Entidades.TablaComparativaDetalle.tablaComparativafrom the entity class [class Entidades.TablaComparativaDetalleis incompleteWhen the source entity class uses a composite primary keya JoinColumn must be specified for each join column using the JoinColumnsBoth the name and the referenceColumnName elements must be specified in each such JoinColumn
Código PHP:
Exception DescriptionThe JoinColumns on the annotated element [private Modelo.Entidades.TablaComparativa Modelo.Entidades.TablaComparativa.tablaComparativafrom the entity class [class Modelo.Entidades.TablaComparativais incompleteWhen the source entity class uses a composite primary keya JoinColumn must be specified for each join column using the JoinColumnsBoth the name and the referenceColumnName elements must be specified in each such JoinColumn
Código PHP:
Exception DescriptionThe JoinColumns on the annotated element [private Entidades.TablaComparativa Entidades.TablaComparativaDetalle.tablaComparativafrom the entity class [class Entidades.TablaComparativaDetalleis incompleteWhen the source entity class uses a composite primary keya JoinColumn must be specified for each join column using the JoinColumnsBoth the name and the referenceColumnName elements must be specified in each such JoinColumn
Código PHP:
Exception Description: [class Modelo.Entidades.Requisicionuses a non-entity [class Modelo.Entidades.TablaComparativa] as target entity in the relationship attribute [private java.util.Collection Modelo.Entidades.Requisicion.tablaComparativaCollection]. 


Todas mis entidades las genera Netbeans con la opción que trae y el codigo que no entiendo es el comentado de color rojo en la entidad TablaComparativa eso lo genera netbeans pero no entiendo por que o para que.

Ojala y me puedan apoyar un poco no veo el problema ya cheque la pagina de toplink pero no se cual sea el problema.