如何实现“不”通过使用Hibernate的限制和标准是什么?(How to achieve “not

2019-06-27 15:19发布

我有类别的清单。 我需要排除2,3行类的列表。 我们可以通过使用条件和限制通过Hibernate实现?

Answer 1:

你的问题是有些不清楚。 假设“类别”是一个根实体和“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



Answer 2:

 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();


文章来源: How to achieve “not in” by using Restrictions and criteria in Hibernate?