2012-05-11 9 views
1

FKである別のテーブル(B)に1つの属性(String)を持つメインテーブル(A)を持つERDがあります。マスターテーブルの扱い方

私が持っている問題は、Bでは唯一の属性はPKだということです。私は、ユーザーがメインテーブル属性で許可された値の1つだけを入力するようにしたい。私はアプリケーションからBテーブルを更新したいとは思っていません。それはDB内で直接行うという珍しいタスクになります。

私はBを別のエンティティとして扱い、 "通常の" JPAで扱うことができますが、もっと効率的な方法があるかもしれないと少し悩んでいます*。私がBテーブルから望むのは、値の完全なリストを取得し、属性値が正しいことを確認することです。

JPAには、これらのマスターテーブルを扱う特定のパターンがありますか?

ありがとうございます。

*:エンティティBオブジェクトの作成/取得は、エンティティAオブジェクトが作成されるたびに必要なものがすべて文字列である場合に発生します。

答えて

1

私は単にBテーブルからすべての文字列を取得するには、ネイティブクエリを使用、またはマップB JPQLクエリを使用して、すべてのBの文字列を取得するためのエンティティとして、しかしB.

へ から何らかの関連を持っていません

B文字列は、エンティティAの基本文字列として格納されます。そして、Bテーブルにない文字列でAインスタンスを作成または更新しようとすると、外部キー制約が壊れているため、フラッシュ時またはコミット時に例外が発生します。

+0

はい、私はそれも考えました。他の誰かがそれに対してもっと「標準的」なやり方を見ているかどうかを見てみましょう。 – SJuan76

関連する問題