クラス PreparedQuery

java.lang.Object
org.iplass.mtp.entity.query.PreparedQuery

public class PreparedQuery extends Object

バインド変数を定義可能なQuery。

select oid, name, mail from MtpUser where oid='${user.oid}' and startDate 入力が無効です: '<'= '${sysdate}' and customProp='${session.customProp}'

といった形で定義されたquery実行時に変数にバインド可能。

デフォルトでバインド可能な変数、関数

  • user : 実行するユーザーの情報。※1参照
  • date : 現在日時のjava.util.Dateのインスタンス。
  • sysdate : 現在日付(時間含まず)の文字列。テナントローカルなタイムゾーンの日付。例:2011-01-20
  • sysdatetime : 現在日時の文字列。テナントローカルなタイムゾーンの日時。例:2011-01-18 02:05:03.348
  • systime : 現在時間の文字列。テナントローカルなタイムゾーンの時間。例:23:19:00
  • toIn(Collection/Array): 引数のCollectionもしくは配列を、inの文字列表現に変換。利用例:"oid in (${toIn(user.groupOid)})"
  • toDateString(Date): 引数のjava.util.Dateのインスタンスを日付の文字列表現に変換。利用例"startDate > '${toDateString(date)}'"
  • toLocalDateString(Date): 引数のjava.util.Dateのインスタンスをローカル日付の文字列表現に変換。利用例"startDate > '${toLocalDateString(date)}'"
  • toDateTimeString(Date): 引数のjava.util.Dateのインスタンスを日時の文字列表現に変換。利用例"startDateTime > '${toDateTimeString(date)}'"
  • toTimeString(Date): 引数のjava.util.Dateのインスタンスを時間の文字列表現に変換。利用例"startTime > '${toTimeString(date)}'"
  • toLocalTimeString(Date): 引数のjava.util.Dateのインスタンスをローカル時間の文字列表現に変換。利用例"startTime > '${toLocalTimeString(date)}'"
  • addYear(Date, int): 引数のjava.util.Dateのインスタンスに指定の年を加えたjava.util.Dateインスタンスを取得する。利用例"startDate > '${toDateString(addYear(date, -1))}'"
  • addMonth(Date, int): 引数のjava.util.Dateのインスタンスに指定の月を加えたjava.util.Dateインスタンスを取得する。利用例"startDate > '${toDateString(addMonth(date, 3))}'"
  • addWeek(Date, int): 引数のjava.util.Dateのインスタンスに指定の週を加えたjava.util.Dateインスタンスを取得する。利用例"startDate > '${toDateString(addWeek(date, -2))}'"
  • addDay(Date, int): 引数のjava.util.Dateのインスタンスに指定の日を加えたjava.util.Dateインスタンスを取得する。利用例"startDate > '${toDateString(addDay(date, 10))}'"
  • addHour(Date, int): 引数のjava.util.Dateのインスタンスに指定の時間を加えたjava.util.Dateインスタンスを取得する。利用例"startDateTime > '${toDateTimeString(addHour(date, -12))}'"
  • addMinute(Date, int): 引数のjava.util.Dateのインスタンスに指定の分を加えたjava.util.Dateインスタンスを取得する。利用例"startTime > '${toTimeString(addMinute(date, 30))}'"
  • addSecond(Date, int): 引数のjava.util.Dateのインスタンスに指定の秒を加えたjava.util.Dateインスタンスを取得する。利用例"startTime > '${toTimeString(addSecond(date, -10))}'"
  • addMillisecond(Date, int): 引数のjava.util.Dateのインスタンスに指定のミリ秒を加えたjava.util.Dateインスタンスを取得する。利用例"startDateTime > '${toDateTimeString(addMillisecond(date, -500))}'"
他、bind()メソッド呼び出し時に独自のバインド変数を設定可能。 また、GroovyTemplateとして実装しているので、javaメソッド呼び出しも可能。 PreparedQueryのインスタンス自体は再利用可能。再利用することにより、以降のbind()時は高速に動作可能。

userについて※1

userにバインドされているインスタンスから、Userエンティティに登録されている情報を取得可能。 バインドされているインスタンス自体はorg.iplass.mtp.auth.Userではない点注意。 Userエンティティに登録されている属性に加えて、以下の変数/関数を取得/実行可能。

  • groupCode : ユーザーの所属するグループのグループコードのString[]。(※セキュリティのEntityの限定条件に利用する場合、groupOidの利用の方が高速です。)
  • groupCodeWithChildren : ユーザーの所属するグループ、およびそのサブグループ含めたすべてのグループコードのString[]。
  • groupCodeWithParents : ユーザーの所属するグループ、およびその親グループ(ルートまで)含めたすべてのグループコードのString[]。
  • groupOid : ユーザーの所属するグループのoidのString[]。
  • groupOidWithChildren : ユーザーの所属するグループ、およびそのサブグループ含めたすべてのグループのoidのString[]。
  • groupOidWithParents : ユーザーの所属するグループ、およびその親グループ(ルートまで)含めたすべてのグループのoidのString[]。
  • memberOf(String): ユーザーが、引数のグループコードのメンバ(サブグループに所属していても)の場合trueを返す。

  • コンストラクタの詳細

    • PreparedQuery

      public PreparedQuery(String queryString)
  • メソッドの詳細

    • getQueryString

      public String getQueryString()
    • query

      public Query query(Map<String,Object> binding)
      queryExpressionをQueryとして取得する。
      パラメータ:
      binding -
      戻り値:
    • condition

      public Condition condition(Map<String,Object> binding)
      queryExpressionをConditionとして取得する。
      パラメータ:
      binding -
      戻り値:
    • value

      public ValueExpression value(Map<String,Object> binding)
      queryExpressionをValueExpressionとして取得する。
      パラメータ:
      binding -
      戻り値: