1. ホーム
  2. java

[解決済み] EnumのJPAマップコレクション

2022-12-02 06:14:37

質問

JPAでは、エンティティクラス内でEnumのコレクションをマッピングする方法はありますか?または唯一の解決策は、Enumを別のドメインクラスでラップし、それを使用してコレクションをマップすることですか?

@Entity
public class Person {
    public enum InterestsEnum {Books, Sport, etc...  }
    //@???
    Collection<InterestsEnum> interests;
}

私はHibernate JPAの実装を使用していますが、もちろん、実装に依存しないソリューションが望ましいと思います。

どのように解決するのですか?

Hibernateを使用すると、次のようなことができます。

@CollectionOfElements(targetElement = InterestsEnum.class)
@JoinTable(name = "tblInterests", joinColumns = @JoinColumn(name = "personID"))
@Column(name = "interest", nullable = false)
@Enumerated(EnumType.STRING)
Collection<InterestsEnum> interests;