Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/09/2012, 16:42
Thrashmilenio
 
Fecha de Ingreso: octubre-2008
Mensajes: 45
Antigüedad: 15 años, 7 meses
Puntos: 0
Relacionar llaves compuestas Hibernate

Hola Gente:

Mi problema es como puedo relacionar las tablas DEPARTAMENTO y CIUDAD, ya que tengo llaves compuestas en cada una de las tablas.

Donde la relacion es DEPARTAMENTO 1..........n CIUDAD

A continuacion muestro mi codigo actual:

Tabla_DEPARTAMENTO
Código HTML:
@Entity
@Table(name="idocument.DEPARTAMENTO")

public class Tabla_DEPARTAMENTO implements Serializable {
    @EmbeddedId
    PK_DEPARTAMENTO_PK PK_Departamento = new PK_DEPARTAMENTO_PK();
    
    private String nombre;
    private String created_by;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date date_created;
    private String modified_by;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date date_modified;
    private String sigla ;
    
    @OneToMany(mappedBy = "DEPARTAMENTO" )
    private Collection<Tabla_CIUDAD> CIUDAD;
CLASE QUE CONTIENE LAS LLAVES DE DEPARTAMENTO

Código HTML:
@Embeddable
public class PK_DEPARTAMENTO_PK implements Serializable {
    
    @Column(name="pais")
    private String pais;
    
    @Column(name="codigo")
    private String codigo;
La anterior es mi tabla en la base de datos llamada departamento que cuenta con 2 claves primarias pais y codigo

Tabla_CIUDAD

Código HTML:
@Entity
@Table(name="idocument.CIUDAD")

public class Tabla_CIUDAD implements Serializable {
        
    @EmbeddedId
    PK_CIUDAD_PK PK_Ciudad = new PK_CIUDAD_PK();
    
    private String codigo;
    private String nombre;
    private String created_by;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date date_created;
    private String modified_by;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date date_modified; 
    
    @ManyToOne
    @ForeignKey(name = "fk_ciudad_departamento")
    @JoinColumns({@JoinColumn(name="pais", referencedColumnName="pais", insertable = false, updatable = false, nullable = false), @JoinColumn(name="departamento", referencedColumnName="codigo")})
    private Tabla_DEPARTAMENTO DEPARTAMENTO;
CLASE QUE CONTIENE LAS LLAVES DE CIUDAD

Código HTML:
@Embeddable
public class PK_CIUDAD_PK implements Serializable {

    @Column(name="pais")
    private String pais;
    
    @Column(name="departamento")
    private String departamento;
    
    @Column(name="codigo")
    private String codigo;
Les agradeceria me pudieran sacar de este aprieto

Saludos