2010-05-09 3 views
0

현재 레거시 시스템의 한 쌍의 테이블에서로드 (읽기 전용) 할 수있는 Hibernate 주석 클래스 쌍을 생성하려고합니다. 레거시 시스템은 테이블을 키잉하는 일관된 (다소 날짜가있는 경우) 접근 방식을 사용합니다.최대 절전 모드에서 레거시 시스템에 복합 키가있는 테이블 조인

Customer      CustomerAddress 
-------------------------- ---------------------------- 
customerNumber:string (pk) customerNumber:string (pk_1) 
name:string     sequenceNumber:int (pk_2) 
          street:string 
          postalCode:string 

내가 이런 CustomerAddress 클래스를 만들어이 접근했습니다 다음과 같이 내가지도를 시도하고있어 표가있는 CustomerAddressKey 클래스가있는 간단한 직렬화 객체입니다

@Entity 
@Table(name="CustomerAddress") 
@IdClass(CustomerAddressKey.class) 
public class CustomerAddress { 

    @Id 
    @AttributeOverrides({ 
    @AttributeOverride(name = "customerNumber", column = @Column(name="customerNumber")), 
    @AttributeOverride(name = "sequenceNumber", column = @Column(name="sequenceNumber")) 
    }) 

    private String  customerNumber; 

    private int   sequenceNumber; 

    private String  name; 

    private String  postalCode; 
    ... 
} 

두 개의 주요 필드. 그러면 Customer 객체는 다음과 같이 정의됩니다.

내 질문은 고객 테이블에서 OneToMany 관계를 어떻게 표현합니까?

답변

0

나는 내 자신의 질문에 대한 답을 얻을 수 있습니다.

@OneToMany(mappedBy="customer") 
@JoinColumn(name="customerNumber") 
List<CustomerAddress> addresses = new ArrayList<CustomerAddress>(); 

을 그리고 CustomerAddress에 다음과 같은 : 추가 고객에게 다음

@ManyToOne 
@JoinColumn(name="customerNumber") 
protected Customer customer; 

이것은 내가 처음 생각했던 것보다 해결하는 간단한 문제가 밝혀졌습니다. 전형적인.

0

Bauer/King Hibernate 서적을 읽었다 고 가정합니다. 복합 기본 키를 올바르게 구현하는 방법을 설명하는 것이 매우 어렵습니다. 복합성 기본 키가 이 아닌은 기존 시스템의 속성입니다 ...

관련 문제