2011-03-08 5 views
1

I는 JPA 및 절전 모드를 사용하고 @OneToOne 협회가 동일한 유형의 두 @Embeddable 성분 자체를, 갖는 @Embeddable 성분의 @ElementCollection를 포함하는 @Entity가있어 다른 @Entity. 기본적으로JPA 하이버 네이트, 임베디드 및 OneToOne

:

@Entity 
public class Company { 
    // ... 
    @ElementCollection 
    private List<Employee> employees; 
    // ... 
} 

@Embeddable 
public class Employee { 
    // ... 
    @Embedded 
    private Address residentialAddress; 
    @Embedded 
    private Address postalAddress; 
    // ... 
} 

@Embeddable 
public class Address { 
    // ... 
    @OneToOne 
    private HousingInfo housingInfo; 
    // ... 
} 

(클래스의 이름이 무죄를 보호하기 위해 변경되었습니다 있습니다.)

이제 나는 데 문제가 내가하려는 오류를 얻고있다

가 null가 아닌 테이블 company_employees (COMPANY_ID BIGINT를 작성, employees_collection & & element_residential_address_housing_info : 스키마를 자동으로 업데이트하기 TINYBLOB, employees_collection & & element_postal_address_housing_info의 TINYBLOB는)

MySQL은 명확하게 &&들 좋아하지 않는다. 우리는 의 하위 클래스를 사용하고 있는데, 이는 내가 볼 수있는 곳 어디에도 &&을 삽입하지 않습니다.

나는 @AssociationOverride을 시도했지만 어느 레벨에 관계없이 무시되는 것으로 보입니다. 즉, Company (List에있는 @AssociationOverride(name = "residentialAddress.housingInfo', joinColumns = @JoinColumn(name = "residential_housing")) 등)의 속성을 재정의하고 Employee (등)의 속성을 시도했지만 아무 것도 수행하지 않은 것으로 보입니다.

답변

0

분명히 설명서에서, @AssociationOverride을 사용해야하는 것처럼 보였지만 분명히 @AttributeOverride이 작동했습니다.

관련 문제