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