2010-12-30 5 views
0
 table : map__company__branches (company_id int, branch_id int, is_primary_branch tinyint(1)) 

    public class company 
    { 
    @ManyToMany(fetch = FetchType.LAZY) 
    @JoinTable(name = "map__company__branches", joinColumns = { @JoinColumn(name = "company_id") }) 
    @MapKeyManyToMany(joinColumns = { @JoinColumn(name = "branch_id") }) 
     @column(name="is_primary_branch") 
     Map<Branch, Boolean> branchMap; 
    } 

부울 타입은 매핑되지 않으므로 "매핑되지 않은 클래스를 대상으로 지정"오류가 발생합니다.최대 절전 모드 : 매핑되지 않은 엔터티와의 연결

답변

1

이 경우 관계 매핑 (@...To...) 대신 모음 매핑 (JPA 2.0 주석의 경우 @ElementCollection 또는 최대 절전 모드 주석의 경우 @CollectionOfElements)이 필요합니다. 예를 들어

, JPA 2.0 어노테이션 :

@ElementCollection 
@CollectionTable(name = "map__company__branches", 
    joinColumns = @JoinColumn(name = "company_id")) 
@MapKeyJoinColumn(name = "branch_id") 
@Column(name = "is_primary_branch") 
Map<Branch, Boolean> branchMap; 
+0

@CollectionOfElements (페치 = FetchType.LAZY) @JoinTable (NAME = "map__company__branches"joinColumns @JoinColumn = {(명 = "COMPANY_ID")}) @MapKey (columns = {@Column (name = "branch_id")}) @column (name = "is_primary_branch") 이 어노테이션을 사용했습니다. @CollectionTable 주석을 찾을 수 없습니다. 하지만 오류가 여전히 있습니다. –

+0

@Maddy : 어떤 버전의 최대 절전 모드를 사용합니까? – axtavt

+0

\t \t \t org.hibernate \t \t \t 동면 - 주석 \t \t \t 3.4.0.GA \t \t \t \t \t \t \t \t \t \t \t \t \t 3.2.0.ga \t \t