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;
    }

ブール型はエンティティにマップされていないため、「マップされていないクラスをターゲットにしています」というエラーが発生します。

4

1 に答える 1

1

この場合、リレーションシップ マッピング ( ) ではなく、コレクション マッピング ( @ElementCollectionJPA 2.0 アノテーションまたはHibernate アノテーション) が必要です。@CollectionOfElements@...To...

たとえば、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; 
于 2010-12-30T11:43:47.477 に答える