jpa NamedQuery,to_timestamp不起作用

时间:2012-09-05 06:57:48

标签: oracle jpa eclipselink toplink named-query

首先感谢帮助我并抱歉我的英语。

当我尝试执行此查询时遇到问题,在表中所有列都是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

我找到的一个解决方案就是使用原生查询,但我也需要他所有的儿子。

感谢。

1 个答案:

答案 0 :(得分: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();

相关问题