java - 使用 TemporalTipe.Time 进行 Query.setparameter

标签 java jpa-2.0 eclipselink jpql

我想做从 Pedidos e 中选择 e,其中 e.diaPedido = :diaPedido AND e.horaPedido = :horaPedido
当我编写参数时使用 query.setParameter("diaPedido", fechaEscogida, TemporalTipe.DATE)query.setParameter("horaPedido", horaEscogida, TemporalTipe.TIME) 但我不知道为什么第二个过滤器 Temporal.TIME 不起作用,因为仍然像 TIMESTAMP 一样进行比较。
我使用 eclipseLink 2.3.0javax.persistence 2.0.1
diaPedidohoraPedido都是oracle数据库中的日期。

最佳答案

如果您只想比较 TIMESTAMP 列的时间部分,则需要使用数据库函数。

在 EclipseLink (>=2.4) 中,您可以使用 EXTRACT 或 CAST,或 FUNCTION/FUNC 运算符来调用数据库函数。

看, http://java-persistence-performance.blogspot.com/2012/05/jpql-vs-sql-have-both-with-eclipselink.html

关于java - 使用 TemporalTipe.Time 进行 Query.setparameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17614983/

相关文章:

java - 如何使用 EclipseLink 更新 MySQL 表中的列?

java - JPA 双向关系

Java 将作为 Rest API 响应返回的 pdf 转换为文本

java - Eclipse Tomcat 发布不工作

java - Postgresql JDBC 连接错误

java - JPA 2 查询在 OR 子句上给出奇怪的行为

hibernate - Hibernate JPA - 插入记录时序列变为负数

java - JPA用户注册

hibernate - JPA 双向关系的优缺点

java - EJB : Two stateless objects use two different transaction