得到我有項目用戶有權限。權威類型存儲在數據庫中,並與用戶建立多對多關係。@ManyToMany並非所有的值都從DB
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "user_authority", joinColumns = @JoinColumn(name = "uauth_user"), inverseJoinColumns = @JoinColumn(name = "uauth_authority"))
private Set<Authority> userAuthorities;
但是,當我試圖獲得選定用戶的所有權限時,我只獲得其中一個權限。 Hibernate只是把它們放在第一個列表中,但忽略了用戶的所有其他權限。
我已經檢查數據庫並存儲這些數據。此外,我找到了解決方案,添加了一個不是JPA註釋。它適用於@Fetch(FetchMode.SUBSELECT)
,但我仍然不明白它有什麼問題。
您將您的'Set'存儲在Set中。 「權限」是否可以相等? –
Seffel
2012-02-22 13:11:01
編號權威機構通過id簡化了比較方法,這對於DB中的所有行都是唯一的。 – 2012-02-22 15:03:01
它應該工作。我剛剛使用EclipseLink和2個實體類User和Authority測試了您的示例。你是如何定義它們的?你是否也定義了實體user_authority(因爲你有第三列)?如果是的話,你是如何定義它的? – perissf 2012-02-22 18:34:05