JPA @PrimaryKeyJoinColumnsはMETHOD、FIELDに定義できない?
Java Persistence API、Proposed Final Draftによると
@Target({TYPE}) @Retention(RUNTIME) public @interface PrimaryKeyJoinColumns { PrimaryKeyJoinColumn[] value(); }
となってるけど、その直後のExampleには・・・
@Entity @IdClass(com.acme.EmpPK.class) public class Employee { @Id Integer id; @Id String name; @OneToOne @PrimaryKeyJoinColumns({ @PrimaryKeyJoinColumn(name="ID", referencedColumn-Name="EMP_ID"), @PrimaryKeyJoinColumn(name="NAME", referencedColumn-Name="EMP_NAME")}) EmployeeInfo info; ... }
・・・いやそれ無理だから・・・
うーむ・・・今回自分が採用を検討しているシステムのテーブルは、自然キーで複合キーが主体を占めていて、1対多、多対1の関連はどれも複合主キーで行われているのが殆どなんです。1対1については、同じ複合キークラスを使えるのであれば、@PrimaryKeyJoinColumnの定義一発で関連付けはOKだというのがわかったのですが、問題は主キーを使った多対1・・・
もしかしたら、@ManyToOneに@PrimeryKeyJoinColumnsを組み合わせればうまくいくかも?・・・と思ったんですけど、肝心の@PrimeryKeyJoinColumnsがメソッド・フィールドに定義出来ません(泣)しかもPFDの定義もそうなってるし・・・
うーん、他に方法は無いのだろうか?・・・これが出来ないと致命的・・・