有効な Javaの項目 32 には、ビット フィールドの代わりに EnumSet を使用することが記載されています。このトピックに関するこの素敵なチュートリアルも見つけました。この本はしばらく前から出回っていますが、Hibernate で EnumSet を永続化する方法に関する投稿が見つからないのはなぜですか? まあ、私は実際にこれを見つけましたが、どちらもかなり古いもので、同じではるかに古いソリューションを指しています。これが私のコードの要約です:
public class MyThing {
public enum MyOptions {
FLAG1, FLAG2
}
@Id
private Long id;
@Column(name = "options")
private EnumSet<MyOptions> options;
// [other fields, getters, setters etc]
}
次のような他の注釈を試しました
@ElementCollection
ありとなし(targetClass = MyOptions.class)
と
@JoinTable(name = "my_options",
joinColumns = @JoinColumn(name = "id"))
そしてまた
@OneToMany
@JoinColumn(name = "options")
しかし、運が悪い。
できれば、テーブルの新しい列に情報を保存しますが、my_thing
必要に応じて、列挙型用に別のテーブルを使用することもできます。