Почему использование даты анализа строки не может найти результат в Hibernate - PullRequest
0 голосов
/ 14 мая 2019

Я использую базу данных mysql, тип столбца - дата.

Почему при использовании параметра String parse to Date, который не может найти результат.

А когда я использую «new Date ()», то могу найти результат.

Дао:

Session session = sessionFactory.getCurrentSession();
CriteriaBuilder builder = session.getCriteriaBuilder();
CriteriaQuery<vo> query = builder.createQuery(vo.class);
Root<vo> root = query.from(vo.class);

query.select(root).where(builder.equal(root.get("id"), id), builder.equal(root.get("querydate"), queryDate));

vo result = session.createQuery(query).getSingleResult();

основной:

String qdate = "20190514";

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Date queryDate = sdf.parse(qdate);

// this can't find result!
vo data =  dao.queryByIdAndDate("SwnZMgFsE52J", queryDate);

// this can find result!
vo data =  dao.queryByIdAndDate("SwnZMgFsE52J", new Date());

1 Ответ

0 голосов
/ 14 мая 2019

Прежде всего, я предлагаю использовать заглавную букву класса Java. Рекомендуется сделать это. Поэтому ваша проблема связана с несоответствием между вашим форматом даты и форматом, принятым из БД. Попробуйте с датой, отформатированной таким образом: гггг-ММ-дд. Так что в вашей основной попробуйте это:

String qdate = "2019-05-14";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date queryDate = sdf.parse(qdate);
vo data =  dao.queryByIdAndDate("SwnZMgFsE52J", queryDate);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...