永続性フレームワークJPA2.0、プロバイダーとしてHibernate4.0。
表Xには、複合主キーとして列A、B、およびCがあり、他の列はありません。表Yには、列C、D、およびEがあります。Eが主キーです。Xのエンティティに、列Cで一致するYのエンティティのコレクションを持たせたい。これは多対多の関係です。結合テーブルが必要になるため、JPA関係は不可能です。ElementCollectionを機能させようとしていますが、A、B、Cで結合を試み続けています。CollectionTableのJoinColumnにReferencedColumnNameを配置すると、ReferencedColumnNameが単一のプロパティにマップされていないと文句を言います。私が見つけたすべての情報源は、これはサポートされていないと言っています。重要な条件がいくつかあります。まず、エンティティは読み取り専用です。更新や挿入は行われません。次に、データベース構造を変更できません。
これらすべてを考えると、2つのアイデアが思い浮かびます。
1つは、コード内から結合を作成することです。つまり、XA ='a'をクエリしてから、XC=YCでクエリした結果をループします。
2つ目は、フィールドAを主キーとして持つZエンティティを作成し、その中にテーブルXを結合テーブルとして使用してテーブルYとのManyToMany関係を配置することです。
この状況にどのようにアプローチしますか?