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

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

鉴于所有这一切,我想到了两个想法 .

第一种是从代码中创建连接 . 换句话说,查询X.A ='a'然后循环查询X.C = Y.C.

第二种是创建一个Z实体,其中字段A作为主键,然后在其中使用表X作为连接表放置与表Y的ManyToMany关系 .

你会如何处理这种情况?