我想知道是否可以在@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;
但这种方法感觉我会因为糟糕的设计而重复数据。有什么想法吗?