标准总和投影
Criteria sum projection
我尝试对一列求和,但出现空指针异常,我不知道自己做错了什么。
ChartVentaVendedores chart = new ChartVentaVendedores();
Criteria facturas = getSession().createCriteria(Factura.class);
facturas.add(Restrictions.like("estado", "CONFIRMADO"));
facturas.add(Restrictions.between("fechaCreacion", fromDate, toDate));
Criteria vendedorFactura = facturas.createCriteria("idVendedor");
vendedorFactura.add(Restrictions.eq("idUsuario", idVendedor));
facturas.setProjection(Projections.sum("total"));
Long counter = (Long) facturas.uniqueResult();
int value = counter.intValue();
chart.setValue(counter.intValue());
chart.setDate(fromDate);
即使我没有进行连接,我仍然得到 null
。
我尝试将 Long counter = (Long) facturas.uniqueResult();
的类型更改为 BigInteger
但我仍然遇到相同的错误。
我的class:
@Entity
@Table(name = "factura")
public class Factura implements Serializable {
private int idFactura;
private Cliente cliente;
private String estado;
private Usuarios idVendedor;
private Date fechaCreacion;
private Date fechaModificacion;
private Integer usuarioCreacion;
private Integer usuarioModificacion;
private BigInteger total;
private String tipoFactura;
....
}
刚刚尝试在 h2 数据库中汇总城市 ID,按要求汇总。
Criteria vendedorFactura = HibernateUtil.getSession().createCriteria(City.class);
vendedorFactura.add(Restrictions.eq("name", city.getName()));
vendedorFactura.setProjection(Projections.sum("id"));
Long counter = (Long) vendedorFactura.uniqueResult();
System.out.println("Counter:"+counter);
Counter:1161 ( Sum of 1 33 65 97 129 161 193 225 257)
我认为,您的 Projections.sum("total")
无法求和 BigInteger
,因为它没有自动装箱功能。
如果可以,请尝试将 BigInteger
更改为 Integer
或 Long
。
我尝试对一列求和,但出现空指针异常,我不知道自己做错了什么。
ChartVentaVendedores chart = new ChartVentaVendedores();
Criteria facturas = getSession().createCriteria(Factura.class);
facturas.add(Restrictions.like("estado", "CONFIRMADO"));
facturas.add(Restrictions.between("fechaCreacion", fromDate, toDate));
Criteria vendedorFactura = facturas.createCriteria("idVendedor");
vendedorFactura.add(Restrictions.eq("idUsuario", idVendedor));
facturas.setProjection(Projections.sum("total"));
Long counter = (Long) facturas.uniqueResult();
int value = counter.intValue();
chart.setValue(counter.intValue());
chart.setDate(fromDate);
即使我没有进行连接,我仍然得到 null
。
我尝试将 Long counter = (Long) facturas.uniqueResult();
的类型更改为 BigInteger
但我仍然遇到相同的错误。
我的class:
@Entity
@Table(name = "factura")
public class Factura implements Serializable {
private int idFactura;
private Cliente cliente;
private String estado;
private Usuarios idVendedor;
private Date fechaCreacion;
private Date fechaModificacion;
private Integer usuarioCreacion;
private Integer usuarioModificacion;
private BigInteger total;
private String tipoFactura;
....
}
刚刚尝试在 h2 数据库中汇总城市 ID,按要求汇总。
Criteria vendedorFactura = HibernateUtil.getSession().createCriteria(City.class);
vendedorFactura.add(Restrictions.eq("name", city.getName()));
vendedorFactura.setProjection(Projections.sum("id"));
Long counter = (Long) vendedorFactura.uniqueResult();
System.out.println("Counter:"+counter);
Counter:1161 ( Sum of 1 33 65 97 129 161 193 225 257)
我认为,您的 Projections.sum("total")
无法求和 BigInteger
,因为它没有自动装箱功能。
如果可以,请尝试将 BigInteger
更改为 Integer
或 Long
。