2017-11-30 4 views
0

이상한 데이터베이스 디자인을 구현하려고하는데이를 수행하는 방법을 알 수 없습니다. 두 엔티티 사이에는 구성 된 기본 키가 둘 다있는 다 대일 관계가 있습니다. 외부 키는 다른 엔티티의 기본 키에있는 필드와 기본 키에없는 필드로 구성됩니다. 누군가가 나를 도울 수 있기를 바랍니다.외래 키는 기본 키와 비 기본 키의 두 필드로 구성됩니다. JPA

@Entity 
    @Table(name = "A") 
    public class A { 

      @EmbeddedId 
      private Aid id; 

      @JoinColumn(name = "FOREIGN_KEY_FIELD2", referencedColumnName = "foreignKeyField2") 
      private B foreignKeyField2; 
    } 

@Embeddable 
    public class Aid{ 

     @JoinColumn(name = "FOREIGN_KEY_FIELD1", referencedColumnName = "foreignKeyField1") 
     private B foreignKeyField1; 

     private String otherField; 
    } 

    @Entity 
    @Table(name = "B") 
    public class B { 

     @EmbeddedId 
     private Bid id; 

     @OneToMany(targetEntity = A.class, fetch = FetchType.LAZY) 
     @JoinColumns({ @JoinColumn(name = "FOREIGN_KEY_FIELD1", referencedColumnName = "foreignKeyField1"), 
       @JoinColumn(name = "FOREIGN_KEY_FIELD2", referencedColumnName = "foreignKeyField2") }) 
     private List<A> as; 

    } 

    @Embeddable 
    public class Bid { 

      private String foreignKeyField1; 

      private String otherField; 

    } 

감사합니다. 미리 감사드립니다.

답변

0

@EmbeddedId를 사용하여이 문제를 해결할 수 없으며 IdClass를 정의해야합니다.

@Entity @IdClass(PartPK.class) 
public class Part { 
    @Id int partNo; 
    @Id @ManyToOne 
    Supplier supplier; 
}   

public class PartPK { 
    int partNo; 
    int supplier; 
}   
: 여기

은 일례이며