Раньше Я разместил этот вопрос, я уже смотрел это , но не смог получить то, что искал.
Я знаю, что для написанного мной запроса может существовать только одна строка или вообще не быть. Поэтому у меня нет причин использовать 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. Но я верю, что будет способ получше.