2017-07-18 105 views
0

我想在我的spring應用程序中使用枚舉的彈簧數據集,這些數據集將存儲在db中。目前我以這種方式嘗試過:枚舉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

問題是Set ,如何堅持所有呢? – Unlucky

+0

您是否在查找數據庫列中的枚舉值?這裏有一個鏈接可以幫助你:http://www.codejava.net/frameworks/hibernate/hibernate-enum-type-mapping-example –

回答

2

您應該添加@CollectionTable具有指定名稱和連接列的anotation。

1

這可能適合你。

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