我想选择基于日期字段条件查询的一些记录:JPA2 /休眠查询:使用日期作为查询参数忽略了“时间”的一部分
CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery();
Root<Macchinario> from = cq.from(Macchinario.class);
cq.select(from);
cq.where(
cb.and(
cb.like(from.<String>get("marca"), "%"+ricerca.getMarca()+"%"),
cb.like(from.<String>get("modello"), "%"+ricerca.getModello()+"%"),
cb.like(from.<String>get("matricola"), "%"+ricerca.getMatricola()+"%"),
cb.equal(from.get("dataInserimento"), ricerca.getDataInserimento())
)
);
dataInserimento是个java.util。日期
我正在寻找的“Macchinario”在数据库中有“2012-05-23 10:16:00”。
ricerca.getDataInserimento()返回“2012-05-23 00:00:00”。
如何传递该参数,告诉jpa忽略日期的“时间部分”?
呃......我想你不明白。我的ricerca.getDataInserimento()已经以(00:00:00)作为时间部分返回一个日期时间。 db中的记录仍然是'10:16:00'。那么比较怎样才能返回一个“找到的”结果,因为它比较了不同的日期?我需要做一个比较AVOIDING比较时间部分 –
更新了解决方案。 – JMelnik
它是诀窍,但.....非常棘手:)我无法相信这样一个常见的查询工作。您的答案将完美与一个JPQL替代查询;)谢谢 –