如何通过在Hibernate中使用限制和标准来实现“不在”?

我有类别列表。 我需要排除2,3行的类别列表。 我们可以通过使用标准和限制来实现hibernate吗?

你的问题有点不清楚。 假设“类别”是一个根实体,“2,3”是id(或类别的某些属性的值),您可以使用以下方法排除它们:

Criteria criteria = ...; // obtain criteria from somewhere, like session.createCriteria() criteria.add( Restrictions.not( // replace "id" below with property name, depending on what you're filtering against Restrictions.in("id", new long[] {2, 3}) ) ); 

DetachedCriteria也可以做到这一点。

  Session session=(Session) getEntityManager().getDelegate(); Criteria criteria=session.createCriteria(RoomMaster.class); //restriction used or inner restriction ... criteria.add(Restrictions.not(Restrictions.in("roomNumber",new String[] { "GA8", "GA7"}))); criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); List<RoomMaster> roomMasters=criteria.list();