2011-12-09 2 views
2

누군가 확장 된 엔터티의 열 이름을 재정의하는 적절한 방법을 설정하는 데 도움을 줄 수 있습니까?jpa 여러 임베드 된 속성의 AttributeOverride

Embedeable :

@Embedable 
Email 
@Column(name = "email_adress") 
private string email; 

부모 엔티티 :

@Entity 
AddressBook 
@Embedded 
@AttributeOverrides({ 
     @AttributeOverride(name="email", column = @Column(name="email_address")) 
}) 
private Email email 

확장 개체 :

@Entity 
@AttributeOverrides({ 
     @AttributeOverride(name="email", column = @Column(name="home_email")) 
}) 
DeluxAddressBook extends AddressBook 
@Embeded 
@AttributeOverrides({ 
     @AttributeOverride(name="email", column = @Column(name="work_email")) 
}) 
private Email workEmail; 

마지막 개체에서 나는 workEmail이 확인되는 "work_email"열을 매핑되는 그러나 home_email은 원래 embeddable에 정의 된 "email_address"열에 매핑됩니다. "home_email"열에 매핑되어야합니다.

나는 노력 w/성공 O를 : 당신의 도움에 대한

@AttributeOverride(name="email.email", column = @Column(name="home_email")) 

감사합니다, 기본 클래스에서 필드 당신의 AttributeOverride 이름 속성이 모두 이메일 매핑을 정의하는 마지막 매핑에서 제스

답변

0

. 두 번째 매핑은 이메일이 아닌 workEmail에 대한 것이어야합니다. 이 변경으로 원하는 결과를 얻을 수 있어야합니다.

+0

org.hibernate.MappingException : 엔티티에 대한 매핑에서 반복되는 열을 제안 할 때 : ... server.model.DeluxAddressBook column : email_address. 이것은 내가 시도한 excersize입니다. 우리가 수행 한 작업은 별도의 엔티티를 만드는 것이 었습니다. – jessarah

관련 문제