我得到了那些桌子:
用户 :( user_id)
网站 :( site_id,subsite)
User_site :( user_id,site_id)
我想要像:
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(
name = "user_site",
joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "site_id", referencedColumnName)
@Where(clause = "site.subsite = false")
private Collection<Site> sites;
但这不起作用。我可以在网站选择上添加约束吗?
答案 0 :(得分:2)
比在SQL级别上过滤更好,我建议您使用重写的getter中的Criteria来过滤Java中的HQL级别。
以下是示例(未经测试):
public List getList(boolean subsite) {
Criteria c = sessionFactory.getCurrentSession().createCriteria(Site.class);
c.add(Restrictions.eq("site.subsite", subsite);
return (List<Site>) c.list();
}