1

別のテーブル (B) への FK である 1 つの属性 (文字列) を持つメイン テーブル (A) を持つ ERD があります。

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

Bを別のエンティティとして扱い、「通常の」JPAで処理することもできますが、もっと効率的な方法があるのではないかと少し悩んでいます*. B テーブルから必要なのは、値の完全なリストを取得し、属性値が正しいことを確認することだけです。

問題は、これらのマスターテーブルを処理するための特定のパターンが JPA にあるということです。

前もって感謝します。

*: 私の懸念は、エンティティ A オブジェクトが作成されるたびに、文字列だけが必要な場合にエンティティ B オブジェクトを作成/取得することです。

4

1 に答える 1

1

単純にネイティブ クエリを使用してBテーブルからすべての文字列を取得するか、B をエンティティとしてマップして JPQL クエリを使用してすべての B 文字列を取得しますが、A から B への関連付けはありません。

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

于 2012-05-11T11:12:21.973 に答える