JPAで複合主キーを使用することは、可能であれば避けるべきもの、またはレガシーデータベースのために必要なものとして、または「毛深い」コーナーケース。新しいデータベースをゼロから設計しており、考慮すべきレガシーの問題がないため、JPA ( HibernateまたはEclipseLinkのいずれか) を使用した複合主キーを回避することをお勧めします。
私自身の感覚では、JPAエンジンは十分に複雑であり、すべてのソフトウェアと同様に、バグがないわけではないため、複合主キーに関連するバグに対して実行する恐怖に耐えるよりも、正規化されていないテーブルに苦しむことが最善である可能性があります (理論的根拠数値の単一列の主キーと外部キーは、JPA エンジンがサポートする最も単純な使用例であるため、可能な限りバグがないようにする必要があります)。