1

持久性框架 JPA 2.0,以 Hibernate 4.0 作为提供者。

表 X 将 A、B 和 C 列作为复合主键,没有其他列。表 Y 有 C、D 和 E 列。E 是主键。我希望 X 的实体具有来自 Y 的与列 C 匹配的实体集合。这是多对多关系。JPA 关系是不可能的,因为它需要一个连接表。我一直在尝试让 ElementCollection 工作,但它一直在尝试在 A、B 和 C 上进行连接。如果我将 ReferencedColumnName 放在 CollectionTable 的 JoinColumn 中,那么它会抱怨 ReferencedColumnName 没有映射到单个属性。我能找到的每个来源都说这不受支持。有几个重要的条件。首先,实体是只读的。不会进行任何更新或插入。其次,我无法对数据库结构进行任何更改。

鉴于所有这些,我想到了两个想法。

第一个是从代码中创建连接。换句话说,查询 XA = 'a' 然后遍历查询 XC = YC 的结果

第二个是创建一个 Z 实体,将字段 A 作为主键,然后在其中使用表 X 作为连接表与表 Y 建立多对多关系。

您将如何处理这种情况?

4

0 回答 0