首先感谢帮助我并抱歉我的英语。
当我尝试执行此查询时遇到问题,在表中所有列都是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
。
我找到的一个解决方案就是使用原生查询,但我也需要他所有的儿子。
感谢。
答案 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();