【问题标题】:jpa NamedQuery with to_timestamp not working带有 to_timestamp 的 jpa NamedQuery 不起作用
【发布时间】:2012-09-05 06:57:47
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

  • TO_TIMESTAMP 不是 JQL 有效函数,您的 JPA 提供程序是什么,您的数据库是什么?
  • 我的数据库是oracle11g,我使用toplink。

标签: oracle jpa eclipselink toplink named-query


【解决方案1】:

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();

【讨论】:

    猜你喜欢
    • 2013-08-16
    • 1970-01-01
    • 2011-03-08
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 2017-12-25
    • 1970-01-01
    相关资源
    最近更新 更多