【发布时间】:2011-11-15 15:08:51
【问题描述】:
在我发布这个问题之前,我已经查看了this,但是我找不到我要找的东西。
我知道我写的查询可能只存在一行或根本不存在。所以,我没有理由使用getResultList()。
这是我的代码:
String hql="from DrawUnusedBalance where unusedBalanceDate= :today";
Query query=em.createQuery(hql);
query.setParameter("today",new LocalDate());
DrawUnusedBalance drawUnusedBalance=
(DrawUnusedBalance)query.getSingleResult();// we can have only a
// single datum per day
//`System.out.println(drawUnusedBalance.toString());`
问题是,如果没有行,它会抛出异常,如果没有,它可以正常工作。我知道这个问题,但我也在寻找最好的解决方案。
我想要的是,如果数据库中没有行,我想获取一个空对象(而不是获取异常),所以我将插入一个新数据,如果它不为空,我只想更新它.
有一种方法可以处理这个问题,我认为这不是正确的方法。它是:我将有一个 try-catch 块,如果它引发异常,我可以写入将新数据插入到 catch 块上的数据库中。但我相信会有更好的方法。
【问题讨论】:
标签: java hibernate jpa exception-handling null