在Hibernate Multi-To-Many关系中使用Map数据结构

时间:2015-11-30 17:25:18

标签: java hibernate spring-mvc many-to-many

我想知道是否可以在@ManyToMany关系中使用Map。

例如,考虑实体电影和人物:

public class Movie implements Serializable {

...

    @ManyToMany(mappedBy="actor_roles")
    private Set<Person> cast;

...
}

现在是Person.java:

public class Person implements Serializable {

...

    @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinTable(name = "Person_Movie_Actor", 
             joinColumns = { @JoinColumn(name = "person_id") }, 
             inverseJoinColumns = { @JoinColumn(name = "movie_id") })
    private Set<Movie> actor_roles;

...
}

问题在于我想保留这种多对多的关系,但我也希望保留一个映射[Person ==&gt;角色]每部电影。我猜是这样的事情:

@ManyToMany(mappedBy="actor_roles")
private Map<Person, String> cast;

字符串就像“Neo”,“Inspector Gadjet”,“Don Corleone”,......你明白了。

获得此类映射的最佳方法是什么?当然,我可以在Person实体

中创建一个新属性
private Map<Movie, String> roles;

但这种方法感觉我会因为糟糕的设计而重复数据。有什么想法吗?

0 个答案:

没有答案