【发布时间】:2013-06-03 19:55:27
【问题描述】:
我正在使用 Hibernate,我希望能够创建多对多对多的关系。目前的情况是:-
一个乐队可能在许多场地演出,一个场地可能有很多乐队。
BAND >------< VENUE
这将构成多对多关系,因此我使用连接表,例如:-
BAND ----< BAND_VENUES >---- VENUE
我能够使用休眠或 SQL 来创建它;查看测试用例:-
@Entity
@Table(name = "Band")
public class Band implements Serializable,
{
@Id
@GeneratedValue(generator = "bandId" )
@GenericGenerator(name = "bandId", strategy = "uuid2")
private String bandId;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "Band_Venues",
joinColumns =
{
@JoinColumn(name = "bandId")
},
inverseJoinColumns =
{
@JoinColumn(name = "venueId")
})
}
和
@Entity
@Table(name = "Venue")
public class Venue implements Serializable
{
@Id
@GeneratedValue(generator = "venueId" )
@GenericGenerator(name = "venueId", strategy = "uuid2")
private String venueId;
}
这看起来很简单,对我来说很有意义。
如果我使用以下场景添加另一个多对多关系,我会感到困惑。
一个乐队可能会在不同的日期/时间在许多场地演出,所以:-
BAND ----< GIG_DATES >-----< GIG_DATES_VENUES >---- VENUE
我认为这种关系应该是使用休眠的,但我实际上没有“BAND_VENUES”的映射,那么我该如何创建这种关系?
我使用的是注解而不是映射文件
【问题讨论】:
标签: java sql database hibernate jta