2017-02-16 7 views
0

注私は、次のCURRENT_TIMESTAMP演算 - QuerySyntaxException

@Modifying 
@Transactional 
@Query("update Contact cc set cc.bar=?2 where cc.foo = ?1 AND cc.createdTime>CURRENT_TIMESTAMP - interval '60' minute") 
public Contact setFixedBarFor(String foo, boolean bar); 

で春-JPAインターフェースで@Modifyingメソッドを追加しようとしている。しかし、私は、次の例外を取得..

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: interval near line 1, column 136 [update Contact cc set cc.foo=?2 where cc.bar = ?1 AND cc.createdTime>CURRENT_TIMESTAMP - interval '20' minute] 
    at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:74) 
    at org.hibernate.hql.internal.ast.ErrorCounter.throwQueryException(ErrorCounter.java:91) 
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:288) 

次の作品:

update Contact cc set cc.bar=?2 where cc.foo = ?1 AND cc.createdTime>CURRENT_TIMESTAMP 

update Contact cc set cc.bar=?2 where cc.foo = ?1 AND cc.createdTime>CURRENT_TIMESTAMP-1 

私はその中に算術を埋め込みたいと思っています。ではなく、は何ですか、間違っています。

+1

これは[ここ](http://stackoverflow.com/questions/17720674/oracle-jpa-querying-with-interval)に記載されている問題と同じではありませんか? –

答えて

0

theポインタのために、次の

update Contact cc set cc.bar=?2 where cc.foo = ?1 AND cast((CURRENT_TIMESTAMP - (1/24)) as timestamp) between cc.createdTime and CURRENT_TIMESTAMP") 

おかげ@BurhanとこのSO answerをやってしまいました。