Class Literal
java.lang.Object
org.iplass.mtp.entity.query.value.ValueExpression
org.iplass.mtp.entity.query.value.primary.PrimaryValue
org.iplass.mtp.entity.query.value.primary.Literal
- All Implemented Interfaces:
Serializable
,ASTNode
リテラルを表す。
EQL上での各プロパティのリテラル表現は以下の形。
プロパティ型 | リテラル表現 | 例 |
---|---|---|
String | 'で囲まれた文字列表現。'は''でエスケープ | 'aaaテスト文字' 'I''m a cat.' |
Integer | 数値表現のサフィックスとして、Iもしくはiを指定。もしくは、小数部指定を含まない数値表現。 | 1234I 10i 54 |
Float | 数値表現のサフィックスとして、Fもしくはfを指定。もしくは、小数部指定を含む数値表現。 | 1234.123F 0.12f 10.5 |
Decimal | 数値表現のサフィックスとして、Gもしくはgを指定。 | 1234.123G 10001g |
Boolean | true もしくは false。大文字も可。 | true FALSE |
Select | SelectValueのvalueを文字列して指定。サフィックスとしてSもしくはsを指定。 | 'A01'S '1's |
Date | 'yyyy-MM-dd'形式の日付表現文字列。サフィックスとしてDもしくはdを指定。 | '2012-12-11'D '2011-11-15'd |
Time | 'HH:mm:ss'形式の日付表現文字列。サフィックスとしてTもしくはtを指定。 | '03:01:00'T '18:24:15't |
DateTime | 'yyyy-MM-dd HH:mm:ss.SSS'(タイムゾーン指定する場合:'yyyy-MM-dd HH:mm:ss.SSSXXX')形式の日付表現文字列。 サフィックスとしてMもしくはmを指定。 タイムゾーン指定がない場合は、テナントローカルに設定されているタイムゾーンと判断する。 | '2011-11-15 16:03:01.123'M '2010-01-30 01:25:01.200'm '2010-01-30 01:25:01.200+09:00'M |
Literalはまた、当該値がネイティブのクエリーに変換される際にバインド変数として扱うかどうかのフラグbindableを持つ。Select文先頭のヒント句でbindが有効化された場合、
当該フラグがtrueのものはバインド変数化されてクエリーされる。ただし実際の値がnullの場合はフラグをtrueにセットしてもバインドされない。
デフォルトはtrue
bindableをfalseに設定するEQL上の文法は、リテラル値の前に/*+no_bind*/をつける。
記述例:
/*+no_bind*/15
/*+no_bind*/'hoge'
/*+ no_bind */'A01'S
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
EQL上のDate型の文字列表現時のフォーマット(SimpleDateFormat形式)static final String
EQL上のDateTime型の文字列表現時のフォーマット。タイムゾーン未指定の場合(SimpleDateFormat形式)。テナントローカルのタイムゾーンで処理されるstatic final String
EQL上のDateTime型の文字列表現時のフォーマット。タイムゾーン指定ありの場合(SimpleDateFormat形式)static final String
static final String
EQL上のTime型の文字列表現時のフォーマット(SimpleDateFormat形式) -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionaccept
(ASTTransformer transformer) void
accept
(ValueExpressionVisitor visitor) boolean
getValue()
int
hashCode()
boolean
void
setBindable
(boolean bindable) void
toString()
Methods inherited from class org.iplass.mtp.entity.query.value.ValueExpression
newValue
-
Field Details
-
DATE_FROMAT
EQL上のDate型の文字列表現時のフォーマット(SimpleDateFormat形式)- See Also:
-
TIME_FROMAT
EQL上のTime型の文字列表現時のフォーマット(SimpleDateFormat形式)- See Also:
-
DATE_TIME_FROMAT
EQL上のDateTime型の文字列表現時のフォーマット。タイムゾーン未指定の場合(SimpleDateFormat形式)。テナントローカルのタイムゾーンで処理される- See Also:
-
DATE_TIME_WITH_TZ_FROMAT
EQL上のDateTime型の文字列表現時のフォーマット。タイムゾーン指定ありの場合(SimpleDateFormat形式)- See Also:
-
NO_BIND_HINT
- See Also:
-
-
Constructor Details
-
Literal
public Literal() -
Literal
-
Literal
-
-
Method Details
-
getValue
-
setValue
-
isBindable
public boolean isBindable() -
setBindable
public void setBindable(boolean bindable) -
accept
- Specified by:
accept
in classValueExpression
-
toString
-
accept
-
hashCode
public int hashCode() -
equals
-