hibernate: ассоциация с неотображенным объектом - PullRequest
0 голосов
/ 30 декабря 2010
     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 Ответ

1 голос
/ 30 декабря 2010

Для этого случая вам нужно сопоставление коллекции (@ElementCollection в аннотациях JPA 2.0 или @CollectionOfElements в аннотациях Hibernate), а не отображение отношений (@...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; 
...