我有一个关于Hibernate ManyToMany映射的问题。我有两个类 A 和 B,它们之间的映射是由 Hibernate 解析的 ManyToMany 映射:
@Entity
@Table(name="A")
public class A {
@Id
@GeneratedValue
private Long id;
@ManyToMany
@JoinTable(name="A_B", joinColumns=@JoinColumn(name="A_id"), inverseJoinColumns=@JoinColumn(name="B_id"))
private Set Bs;
}
@Entity
@Table(name="B")
public class B {
@Id
@GeneratedValue
private Long id;
@ManyToMany(mappedBy="b")
private Set As;
}
用户和组的外键是“A_id”和“B_id”。联接表称为A_B。
现在,我想加上C。我想A_B与C有关系,与C创建多对多关系,A_B我可以称之为A_B_C。
@Entity
@Table(name="C")
public class C {
@Id
@GeneratedValue
private Long id;
@ManyToMany
@JoinTable(name="A_B", joinColumns=@JoinColumn(name="C_id"), inverseJoinColumns=@JoinColumn(name="?????"))
private Set A_Bs; // Don't have any UserGroup entity !
}
编辑:所以我会创建一个_B实体,A和B和A_B的关系为2 @OneToMany。
问题:关于主键,A_B的最佳解决方案是什么?嵌入的主键还是生成的Id?我不想有重复的(user_id,group_id):/只有唯一约束就足够了?
A_B呢
如有任何帮助,我将不胜感激。
非常感谢!
我认为您不需要与组中
的用户
相关联,因为组
是一个类似于字典的东西。
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue
private Long id;
@ManyToMany
@JoinTable(name = "users_groups")
private Set<Group> groups;
}
@Entity
@Table(name="groups")
public class Group {
@Id
@GeneratedValue
private Long id;
}
您需要@ManyToMany
与通讯
中的组
关联
@Entity
@Table(name="newsletters")
public class Newsletter {
@Id
@GeneratedValue
private Long id;
@ManyToMany
@JoinTable(name="newsletters_groups")
private Set<Group> groups;
}
我需要在我的数据库中创建多个多对多的关系。 有一个“主”表,我们称之为“项目”。 然后有3个表包含“选项”。 假设我们有:品类、地域、用户。这些保存的唯一信息是项目的名称和ID。 可以将多个类别、区域和用户分配给多个项目。 因此,我有两个选项来创建这种关系: 1)为每个'选项'表创建关系表。每个表包含两列:project_id和category_id、region_id或user_id。使用这种方
问题内容: 假设我有一个具有两个不同的一对多关系的对象。很像: 和 假设我的对象有两个与这两个对象相关的列表。 我已经阅读了以下示例:http : //forum.springsource.org/showthread.php?50617-rowmapper -with-one-to-many- query,其中说明了如何使用单个一对多关系来执行此操作。为了您的方便,这里是替代: 我认为这并不涉及
> 我有3个实体用户、应用程序和角色。 null null Role1.getUsers().Add(user);Role1.getUsers().Add(user); role2.getUsers().add(user);role2.getUsers().add(user); user.getApplications().add(app1);user.getApplications().add(
用户表结构:用户 id、名称、用户名、密码、创建时间、更新时间 文章表结构:文章 id、标题、内容、创建时间、更新时间 关系表:文章\用户 id、文章id、用户id处于活动状态、创建时间、更新时间 标签 id、名称、用户id、创建时间、更新时间 透视表项目用户与标记的关系。表:文章\用户\标签 标签号,物品号,用户号 我想连接这些表,以便可以像这样或类似的格式访问 并且应该能够创建/更新smth,
我正在尝试用JDBI编写一个对象查询来处理一对多关系。正如在文档中所看到的,就是这样做的方法。但是我把这些错误归咎于构造函数; 更新:为每个实体保留一个构造函数。
问题内容: 我有2张桌子: 电影:movieID 用户:userID 这些表通过Queue表具有多对多关系,并带有一个附加属性listOrder: 队列:movieID,userID,listOrder 我正在尝试使用EclipseLink对此模型建模,但是却收到“不兼容映射”错误。这是我的代码的示例: QueueItemPK的目的是使我可以拥有movieID和userID的复合主键。我不确定这是