关于query.uniqueResult报错问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 20:08:58
public float countmonthmoney(Long blogid) {
java.text.SimpleDateFormat sf = new java.text.SimpleDateFormat("yyyyMM");
String today = sf.format(new java.util.Date());
StringBuilder stringBuilder = new StringBuilder("select sum(d.emolument) from " + DesignerSelled.REF+ " as d where d." + designerSelled.PROP_DESIGNERID+ "=" + blogid + " and " + "to_char(d."+ DesignerSelled.PROP_SELLEDTIME + ",'yyyyMM')" + "='"+ today + "'");
Session session = null;
float result = 0.0f;
try {
session = this.getSession();
Query query = session.createQuery(stringBuilder.toString());
result = Float.parseFloat((query.uniqueResult()==null?"":query.uniqueResult()).toString());
} finally {closeSession(session);}return result;}
那位高手帮忙看看呀,我这样写是没有错的,但是,每当数据库DesignerSelled表中emolument没有值的时候就会报错 result = Float.parseFloat((query.uniqueRe

如果为空你可以在select nvl(sum(d.emolument) ,-1,0)这样的写法来判断,当结果为空时给他赋予个特定的值

那你就不允许这个字段为空咯

或者在条件里面多加一个条件,and 字段 not null