1

我正在尝试使用注释将现有数据库映射到 Hibernate。问题如下。

'organization' 和 'organization_roles' 具有多对多关系,这在表 'organization_has_roles' 中使用两个主键作为连接表中的复合主键来解决。

接下来是一个“用户”表。用户可以在多个组织中拥有一个角色。这再次在名为“users_has_organizations_and_role”的连接表中解决,该表具有“user_id”、“organization_id”和“organization_role_id”的复合主键以及“user_id”和“organization_id”上的唯一索引。

“users_has_organizations_and_role”引用了“organization_has_roles”复合主键(organization_id,organization_role_id)和用户表(user_id)

我无法找到有关此问题的有效示例。

是否可以映射这个。我应该使用哪些注释以及如何使用?

我正在使用 Hibernate 4,虽然它可能无关紧要..

4

1 回答 1

1

这种方法的主要问题是您有一个不可映射的 ORM 不匹配:您的数据库中有一个实体 ( organization_has_roles),它在 OO 中被翻译为关系。由于此关系不是实体,并且没有@Id,因此无法将其引用到另一个实体中。

一种解决方案是将数据库实体映射organization_has_roles到 JPA/Hibernate 实体中,使用复合键或合成键(无论您喜欢什么)。然后,您可以在User模型中引用此实体。

于 2012-07-10T08:55:38.833 回答