持久性框架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关系。
你会如何处理这种情况?