我现在有张user用户表 一张role角色表 还有一张 user_role中间表
关系多对多
我想查询出 指定2个角色的所有 用户信息
用criteria 怎么写查询条件?

解决方案 »

  1.   


    DetachedCriteria criteria = DetachedCriteria.forClass(类名.class);
    criteria.add(Restrictions.eq("字段1", Long.valueOf(值1)));
    criteria.add(Restrictions.eq("字段2", Long.valueOf(值2)));
    list = this.getHibernateTemplate().findByCriteria(criteria);相当于select * from 类名 where 字段1=值1 and  字段2=值2
    这是基本语法,多对多自己去套一下就可以了
      

  2.   

    Criteria crt = getSessionFactory().getCurrentSession().createCriteria(LoginUser.class);
    crt.createCriteria("roles",Criteria.LEFT_JOIN).add(Restrictions.conjunction()
    .add(Restrictions.eq("authority", authorityDao.getROLE_NOMAL().getAuthority()))
    .add(Restrictions.eq("authority", authorityDao.getROLE_AGENT().getAuthority())));authorityDao.getROLE_NOMAL().getAuthority() 返回 权限字符串“ROLE_NOMAL”
    authorityDao.getROLE_AGENT().getAuthority()返回 权限字符串“ROLE_AGENT”
    LoginUser 和 Authority 是双向多对多关系。我上面的查询想要返回 权限包含 “ROLE_NOMAL” 和“ROLE_AGENT”的用户,不知道哪里写的不对,返回的结果集总是空。高手指点下,谢谢!!!