java - 使用 Hibernate 排除值

标签 java hibernate hibernate-criteria

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

我尝试过使用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;
}

在我的表格中的 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;
}

这样我就可以排除我想要的任何值。

感谢大家的阅读,很抱歉浪费了您的时间。

关于java - 使用 Hibernate 排除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37738757/

相关文章:

hibernate - 在 Grails 中配置 Postgres

java - 填充主键的 Hibernate saveOrUpdate

java - 如何避免 hibernate 中的字符串成员?

java - 如何手动将泛型参数传递给方法

java - 如何在 Java FX 的网格 Pane 上动态添加行?

java - 具有覆盖 equals 和 hashCode 的 HashMap 不起作用

hibernate - 如何在 grails 中有条件的 2 个表左连接

java - Maven 模块 - 如何在不相关的项目中将其用作外部库

java - JPA中表之间的关系是如何设置的?

使用枚举类型的 grails createcriteria 过滤