我正在尝试从结果的一列中排除一个值。
我尝试过使用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/