2
我有用戶實體:如何獲得實體時一對多關係使用Hibernat過濾器中包含的值
public class User implements IStandarizedEntity {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Long id;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "web.user_role",
joinColumns = {
@JoinColumn(name = "user_id", referencedColumnName = "id")},
inverseJoinColumns = {
@JoinColumn(name = "role_id", referencedColumnName = "id")})
@Size(min = 1, max = 10)
private List<Role> roles = new ArrayList<>();
一個角色實體:
public class Role implements IStandarizedEntity {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Long id;
@Column(name = "type")
@Enumerated(EnumType.STRING)
private ERole type;
我使用休眠像JPA提供商。我只想獲得具有特定角色的用戶。我編寫了命名查詢來檢索所有用戶,現在我試圖使用@Filter僅檢索具有指定角色類型的用戶。
我的成就是我可以檢索所有用戶,然後加載角色我可以加載過濾的角色列表,但它不是我想要做的。
感謝您的任何幫助。
問候, 塞巴斯蒂安
嗨,感謝您的回覆,但我必須有時做過濾,有時不會。這取決於我從前端得到的要求。我認爲要通過session.enableFilter()進行過濾時需要過濾,並使用@Filter指定過濾。 –
你可以看看[這裏](http://stackoverflow.com/questions/6919686/annotation-to-filter-results-of-a-onetomany-association)來了解如何實現。對我而言,我將使用CriteriaQuery創建一個動態查詢。 –