Как выполнить поиск по неполной отметке времени по Criteria API - PullRequest
0 голосов
/ 26 августа 2018

Я хочу искать в БД все строки с частью метки времени, например "2014-08-12". И если есть строки типа «2014-08-12 16: 58: 48.477» или «2014-08-12 15: 58: 48.477», я хочу получить это

Я использую JPA + Hibernate + Criteria API

document.setRegister_date(DateUtil.DateToSQLTimestamp("2013-08-12 16:58:48.477"));

if (register_date != null) {
        predicates.add(cb.equal(DocumentsRoot.get("register_date"), register_date));
}

Ответы [ 2 ]

0 голосов
/ 26 августа 2018
String date = "2013-08-12";

document.setRegister_date(DateUtil.DateToSQLTimestamp(date + " 00:00:00.000"));
document.setRegister_end_date(DateUtil.DateToSQLTimestamp(date + " 23:59:59.999"));    

Timestamp register_date = document.getRegister_date();
Timestamp register_end_date = document.getRegister_end_date();

predicates.add(cb.between(DocumentsRoot.get("register_date"), register_date, register_end_date));
0 голосов
/ 26 августа 2018

Если вы знаете, что формат всегда исключает время, вы можете использовать запрос диапазона , где вы можете установить from как 00: 00: 00.001 и to как 23: 59: 59.999

...