JPA、Eclipse リンク、Oracle を使用しています。次のオラクル式に相当するJPAクエリに条件を導入しようとしています
current_timestamp - NUMTODSINTERVAL(10, 'SECOND')
次のようなクエリをいくつか試しました
select u from User u where (current_timestamp - FUNC('NUMTODSINTERVAL', :offset, 'SECOND')) > u.birth_date
しかし、役に立たない。すべて構文エラーになります。Javaを使用して値を計算するだけでなく、ネイティブクエリも避けたい.
オラクルのウェブサイトで以下を見つけました。
Oracle で add_months 関数を使用し、簡単な計算を使用して月の値を秒に変換します。
上記が可能であれば、以下を使用できます
Query query = entityManager.createQuery("select u"
+ " from User u"
+ " where"
+ " FUNC('add_months', CURRENT_TIMESTAMP, :offset) > u.birth_date "//)"//
);
query.setParameter("offset", getOffSet());
編集:これを行うEclipseリンクJPAの方法、またはadd_monthsを使用して秒を加算/減算するOracleの方法が必要です。