Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)
ここでは,JPQL使用時の注意事項について説明します。
表6-23 ANDの3値論理式(A AND Bの結果)
| A | B | ||
|---|---|---|---|
| True | False | Unknown | |
| True | True | False | Unknown |
| False | False | False | False |
| Unknown | Unknown | False | Unknown |
表6-24 ORの3値論理式(A OR Bの結果)
| A | B | ||
|---|---|---|---|
| True | False | Unknown | |
| True | True | True | True |
| False | True | False | Unknown |
| Unknown | True | Unknown | Unknown |
表6-25 NOTの3値論理式(NOT Aの結果)
| A | NOT Aの結果 |
|---|---|
| True | False |
| False | True |
| Unknown | Unknown |
HiRDBでJPQLを使用する場合に使用できないクエリの記述例を次に示します。
使用できない例1:関数の引数に位置パラメタを指定する
Query query1 = em.createQuery(
"SELECT o FROM TestEntity o "+
"WHERE o.name=TRIM(LEADING FROM ?1)")
.setParameter(1, " SatoTaro");
|
使用できない例2:四則演算子に位置パラメタを指定する
int no_A=2;
int no_B=4;
Query query2 = em.createQuery(
"SELECT o FROM TestEntity o WHERE o.id = ?1 + ?2")
.setParameter(1, no_A)
.setParameter(2, no_B);
|
使用できない例3:比較演算子に位置パラメタを指定する
int cmp_no=3;
Query query3 = em.createQuery(
"SELECT o FROM TestEntity o WHERE o.id = ?1 AND ?1 < 9")
.setParameter(1, cmp_no);
|
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.