1

首先感谢您帮助我,并为我的英语感到抱歉。

当我尝试执行此查询时遇到问题,表中的所有列都是 varchars2,我需要将它们与时间戳进行比较。

这是我的查询:

SELECT 
    c 
FROM 
    CustodiaTable c 
WHERE 
    c.ctrPro = :ctrPro 
    and TO_TIMESTAMP (c.fecInicio,'DD/MM/YYYY/HH24:MI:SS.FF') >= TO_TIMESTAMP (:fecInicio,'DD/MM/YYYY/HH24:MI:SS.FF')

fecInicio 是一个varchar2.

我发现的一种解决方案是使用本机查询,但我也需要他所有的儿子。

谢谢。

4

1 回答 1

0

EclipseLink 是 TopLink 的 JPA 提供者,并且支持此处描述的 FUNC 和 FUNCTION: http ://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/Support_for_Native_Database_Functions#FUNC

这可以让您在 JPQL 中指定本地函数,例如 to_timestamp。您还应该能够使用本机 SQL 返回对象及其引用,使用 em.createNativeQuery(sqlString, CstodiaTable.class).getResultList();

于 2012-09-05T13:36:43.633 回答