使用 Hibernate 排除值

Exclude value using Hibernate

我正在尝试从我的结果中的一列中排除一个值。

我试过使用 conjunction()and() 运算符,但无法达到我想要的效果。

这是我最后一次尝试过滤:

public List<Factura> getAll() {
    Criteria criteria = getSession().createCriteria(Factura.class);
    Criterion criterion = Restrictions.conjunction().add(Restrictions.eq("estado", "INICIADO"))
                                                    .add(Restrictions.eq("estado", "CONFIRMADO"));
    criteria.addOrder(Order.desc("idFactura"));
    criteria.add(criterion);
    List<Factura> list = criteria.list();
    return list;
}

在我的 table 列中 estado 我有 3 个可能的值。 INICIADO, CONFIRMADO, RESERVADO 我想从我的结果中排除 RESERVADO 但我不知道我做错了什么,只得到没有过滤的完整列表。

好的,我尝试了很多东西后找到了解决方案,而且很容易理解。

public List<Factura> getAll() {
    Criteria criteria = getSession().createCriteria(Factura.class);
    criteria.add(
            Restrictions.not(
                    Restrictions.in("estado", new String[]{"RESERVADO"})));
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    List<Factura> list = criteria.list();
    return list;
}

有了这个我可以排除我想要的任何值。

感谢大家的阅读,抱歉耽误了您的时间。

使用Restrictions.ne方法

public List<Factura> getAll() {
    Criteria criteria = getSession().createCriteria(Factura.class);
    criteria.add(Restrictions.ne("estado", "RESERVADO"));
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    return criteria.list();
}