2つのエンティティクラスがあります。限界値
@Entity
public class Person {
@ManyToOne(cascade = CascadeType.PERSIST)
private Hobby hobby;
}
@Entity
public class Hobby {
private String hobby;
}
Person.hobby
フィールドが「趣味」テーブルに発見された値のみを取る必要があります。だから私はHobbies
のセットを定義したいと思っています。それでPerson
はちょうど1つを選ぶことができます。もちろん、1つの趣味を多くの人が共有でき、の新しいPerson
が追加されたときには「趣味」テーブルを変更しないでください。
実際、これはJavaでコード化されていないが、基になるデータベースの「趣味」テーブルで定義されている列挙を実現します。新しい趣味を追加する必要がある場合、コードベースではなくデータベースのみを変更する必要があります。
これは、hibernate(4.3)アノテーションとJPAアノテーションでどのように実現されますか?
ありがとう、@greyfairer。 idフィールドを省略してコードを削除しました。外部キーの関係は、実際にそこにあります。 「趣味」テーブルの内容を読み込むことは意味があります。私はそうではありません、そして、それは何度も同じ趣味でテーブルを満たしています。 しかし、休止状態がそれを処理するなら、それはいいでしょう。私はこのようなものを探しています:多分 'Hobby.hobby.hobby'を主キー(すなわち@Id)にして、Hobby.hobbyと同じ値を持つ趣味が挿入されていれば、自動的にこの参照を取るようにしてください。それは良い習慣と考えられているのですか?これは私を実際のEnumに近づけるでしょう。 –
コード例を追加し、hobbyNameを主キーとして使用する例を追加しました。 – greyfairer
今は完全に意味があります。再度、感謝します! –