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