主キーの行方

<< 戻る   トップ >>

Eclipse の JPA Tool を使って表示されるエラーは "The entity has no primary key attribute defined" というもので、表 ping に主キーが定義されていない、というものであった。まあ、確かに設定されていない。朧げな記憶によれば、ping 表を構成する二つのフィールドは article (記事番号) とその記事から trackback ping をかけた URL で、この二つを組み合わせればユニークになるから複合主キーの表だと考えたはずである。それにしては両フィールド共に主キーとして設定されていない。単に忘れただけかもしれない。

そんなわけだから、両方を主キーとして設定すれば問題はなくなるのだろう。JPA では複合主キーをプロパティとしたクラスを @EmbededId として使う。複合主キー専用のクラスが必要になると理解すればよいのだろうか。どうしても複合主キーが必要ならこの処理になるが、サロゲートキー(代理主キーとでも訳せばよいのか) を新たに付加する手もある。面倒だから連番IDを振って、それを主キーにしてしまうのだ。どうやらJPAは複合主キーを推奨してないらしく、サロゲートキーを設けることで処理すればよいのではないか、と思う。

しかしながら、トラックバックについてはそれとは別に考慮すべき問題があるのだ。


作成: 2018-09-05 19:49:13.0更新: 2018-09-05 20:44:51.0
http://museo-anonimo.jp/nanban/?id=1348,http://museo-anonimo.jp/nanban/tr/1348