Foros del Web » Programación para mayores de 30 ;) » Java »

JPA Tools Eclipse con EclipseLink

Estas en el tema de JPA Tools Eclipse con EclipseLink en el foro de Java en Foros del Web. Hola a todos, Tengo un problema a la hora de generar los scripts de BBDD a partir de unas clases en Eclipse con la JPA ...
  #1 (permalink)  
Antiguo 29/01/2015, 06:34
rakilinda
Invitado
 
Mensajes: n/a
Puntos:
JPA Tools Eclipse con EclipseLink

Hola a todos,

Tengo un problema a la hora de generar los scripts de BBDD a partir de unas clases en Eclipse con la JPA Tools configurado con la plataforma "EclipseLink 2.5.x".

- Estas son las clases.

@Entity
@Table(name="UNI")
public class Uni implements Serializable
{
private static final long serialVersionUID = 1L;

@Id
@Column(name="IDUNI", unique=true, nullable=false, precision=5)
private long iduni;

@Temporal(TemporalType.DATE)
@Column(name="DATAINI", nullable=true)
private Date dataini;

@OneToMany(mappedBy="uni")
private Set<UniHis> uniHis;
}

@Entity
@Table(name="UNI_HIS")
public class UniHis implements Serializable
{
private static final long serialVersionUID = 1L;

@EmbeddedId
private UniHisId id;

@ManyToOne
@JoinColumns({@JoinColumn(name="IDUNI", referencedColumnName="IDUNI", nullable=false, insertable=false, updatable=false), @JoinColumn(name="DATAINI", referencedColumnName="DATAINI", nullable=false, insertable=false, updatable=false)})
private Uni uni;
}

@Embeddable
public class UniHisId implements Serializable
{
private static final long serialVersionUID = 1L;

@Column(name="IDUNI", unique=true, nullable=false, precision=5)
private long iduni;

@Column(name="DATAINI", nullable=false)
@Temporal(TemporalType.DATE)
private java.util.Date dataini;
}

- Y este es el script de salida:

CREATE TABLE PRUEBA.UNI (IDUNI NUMBER(5) NOT NULL UNIQUE, DATAINI DATE NULL, PRIMARY KEY (IDUNI));

CREATE TABLE PRUEBA.UNI_HIS (IDUNI NUMBER(5) NOT NULL UNIQUE, DATAINICI DATE NOT NULL, PRIMARY KEY (IDUNI, DATAINI));

ALTER TABLE PRUEBA.UNI_HIS ADD CONSTRAINT PK_UNI_HIS FOREIGN KEY (IDUNI) REFERENCES SICUBADM._FER_UNITORG (IDUNI);

Si os fijáis no sale lo que esperaba:

ALTER TABLE PRUEBA.UNI_HIS ADD CONSTRAINT PK_UNI_HIS FOREIGN KEY (IDUNI, DATAINI) REFERENCES SICUBADM._FER_UNITORG (IDUNI, DATAINI);

He hecho pruebas con otros dos campos que no son PK a la tabla UNI y aparecen los dosen la FK. No sé si el problema es al hacer referencia a campo que es PK (IDUNI) y otro que no (DATAINI).

Muchas gracias por cualquier aporte porque no he encontrado nada que pueda solucionarlo.

Saludos.

Etiquetas: clase, eclipse, jpa, tools
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:26.