Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス 12c (12.1.2) E48005-01 |
|
![]() 前 |
![]() 次 |
SQL
を使用して、JPQL文内でSQLを統合します。問合せにJPQLでサポートされていない関数が必要な場合があるため、これはネイティブのSQL問合せを使用するかわりになります。
使用方法
SQL
関数には、SQL文字列(JPQL文に埋め込む)およびSQL文字列に変換する引数の両方が含まれています。疑問符( ? )を使用して、SQL関数の引数から変換されるSQL内のパラメータを定義します。
SQL
を使用して、標準ではない構文でデータベース関数をコールしたり、SQLリテラルを埋め込んだり、JPQL内でその他のSQL操作を実行することができます。SQLを使用すると、問合せに引き続きJPQLを使用できます。
例
例3-12に、このJPQLの拡張機能を使用する方法を示します。
例3-12 SQL EQの使用
SELECT p FROM Phone p WHERE SQL('CAST(? AS CHAR(3))', e.areaCode) = '613'
SELECT SQL('EXTRACT(YEAR FROM ?)', e.startDate) AS year, COUNT(e) FROM Employee e GROUP BY year
SELECT e FROM Employee e ORDER BY SQL('? NULLS FIRST', e.startDate)
SELECT e FROM Employee e WHERE e.startDate = SQL('(SELECT SYSDATE FROM DUAL)')
関連項目
詳細は、次を参照してください。