2017-07-18 12 views
0

私は春のアプリケーションで、dbに格納されるenumの春データセットを使用したいと思います。現在、私はその方法でそれを試しました:enumのSpringデータのセット

@NotNull 
@Column(name = "ROLES") 
@Enumerated(EnumType.STRING) 
@ElementCollection(targetClass = Role.class) 
private Role role; 

@NotNull 
@Column(name = "PERMISSIONS") 
@Enumerated(EnumType.STRING) 
@ElementCollection(targetClass = Permission.class) 
private Set<Permission> permissions; 

しかし、あなたが知っている通り、それはうまくいきません。データベースに列挙型を格納するにはどうすればよいですか?

よろしくお願いいたします。

+0

問題は正確に何ですか? '@ElementCollection(targetClass = Role.class)'は必須ではありません。コレクションではなく単一の列挙型です。 – davidxxx

+0

問題が設定であり、どのようにそれのすべてを持続するには? – Unlucky

+0

データベース列内の値を列挙したいですか?これを助けるリンクがあります:http://www.codejava.net/frameworks/hibernate/hibernate-enum-type-mapping-example –

答えて

2

@CollectionTableアノテーションに指定した名前と結合列を追加する必要があります。

1

これはあなたのために動作しますように。

@ElementCollection(targetClass = Permission.class) 
@CollectionTable(name = "permissions", joinColumns = @JoinColumn(name = "permission_id")) 
@Column(name = "permission", nullable = false) 
@Enumerated(EnumType.STRING) 
Set<Permission> permission; 
関連する問題