我正在尝试使用注释将现有数据库映射到Hibernate。 问题如下。
'organization'和'organization_roles'有多对多关系,在一个解决方案中解决 表'organization_has_roles'使用两个主键作为连接表中的复合主键。
接下来是'用户'表。用户可以在多个组织中拥有单个角色。这在名为'users_has_organizations_and_role'的连接表中再次得到解决,该连接表具有'user_id','organization_id'和'organization_role_id'的复合主键以及'user_id'和'organization_id'上的unique_index。
'users_has_organizations_and_role'引用'organization_has_roles'复合主键(organization_id,organization_role_id)和users表(user_id)
我无法找到有关这个问题的例子。
是否可以映射此图。我应该使用哪些注释以及如何使用?
我正在使用Hibernate 4,虽然它可能无关紧要..
答案 0 :(得分:1)
这种方法的主要问题是你有一个不可映射的ORM不匹配:你的数据库中有一个实体(organization_has_roles
),它被转换为OO中的关系。由于此关系不是实体,并且没有@Id
,因此无法将其引用到另一个实体中。
解决方案是将数据库实体organization_has_roles
映射到JPA / Hibernate实体,使用复合键或合成键(无论您喜欢什么)。然后,您可以在User
模型中引用此实体。