2012-09-05 5 views
1

먼저 영어를 도와 주셔서 고맙습니다.jpa NamedQuery와 to_timestamp가 작동하지 않습니다.

이 쿼리를 실행하려고 할 때 테이블에있는 모든 열이 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

TO_TIMESTAMP는 JQL 유효 함수가 아니며 JPA 제공자는 무엇이며 데이터베이스는 무엇입니까? –

+0

내 데이터베이스는 oracle11g이며 im은 toplink를 사용합니다. –

답변

0

는 EclipseLink는 TopLink를 OFR JPA를 제공하고, FUNC에 대한 지원을 가지고 있으며, 기능은 여기에 설명 : http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/Support_for_Native_Database_Functions#FUNC

이 당신이 그런 JPQL에서 TO_TIMESTAMP 등의 기본 기능을 지정할 수 있습니다. 또한 em.createNativeQuery (sqlString, CstodiaTable.class)를 사용하여 원시 SQL을 사용하여 객체 및 해당 참조를 반환 할 수 있어야합니다. getResultList();