public class Query extends java.lang.Object implements ASTNode
Entityの検索をする際利用するクエリーを表現するクラスです。 SQLライクな検索条件を指定可能です。
Queryをインスタンス化する方法として、2種類あります。
コード例:
Query q = Query.newQuery("select oid, name, orderId, totalamount, detail.amount from OrderEntity where orderDate > '2011-10-01' and orderStatus='5'"); or Query q = new Query("select oid, name, orderId, totalamount, detail.amount from OrderEntity where orderDate > '2011-10-01' and orderStatus='5'");※EQLの文法は、下記BNFを参考にしてください。
コード例:
Query q = new Query() .select("oid", "name", "orderId", "totalamount", "detail.amount") .from("OrderEntity") .where(new And().gt("orderDate", "2011-10-01").eq("orderStatus", "5"));
※BNFを拡張した記述式の説明
・[] = オプションの要素
・{} = グループ化された要素
・* = 0回以上の繰り返し
・"" = 明示的な文字列(BNFの式やシンボルではない)を示す
<query> ::= <select clause> <from clause> [<refer clause>] [<where clause>] [<group by clause>] [<having clause>] [<order by clause>] [<limit clause>]
<select clause> ::= SELECT [DISTINCT] <value expression> {,<value expression>}*
<from clause> ::= FROM <entity name>
<refer clause> ::= REFER <reference> [ON <condition>] [AS OF <value expression>] {,REFER <reference> [ON <condition>] [AS OF <value expression>]}*
<where clause> ::= WHERE <condition>
<group by clause> ::= GROUP BY <value expression> {,<value expression>}* [ROLLUP | CUBE]
<having clause> ::= HAVING <condition>
<order by clause> ::= ORDER BY <sort spec> {,<sort spec>}*
<sort spec> ::= <value expression> [ASC | DESC] [NULLS FIRST | NULLS LAST]
<limit clause> ::= LIMIT 件数 [OFFSET 開始行]
<condition> ::= <and> | <or> | <not> | <paren>
<and> ::= <condition> {AND <condition>}*
<or> ::= <condition> {OR <condition>}*
<not> ::= NOT <paren>
<paren> ::= <predicate> | (<condition>)
<predicate> ::= <comparison predicate> | <between> | <contains> | <in> | <is not null> | <is null> | <like>
<comparison predicate> ::= <value expression> <comparison operator> <value expression>
<comparison operator> ::= = | > | >= | < | <= | !=
<between> ::= <value expression> BETWEEN <value expression> AND <value expression>
<contains> ::= "CONTAINS('" <full text search expression> "')"
<in> ::= <simple in> | <row value list in> | <subquery in>
<simple in> ::= <value expression> IN (<value expression> {,<value expression>}*)
<row value list in> ::= (<value expression> {,<value expression>}*) IN (<row value list> {,<row value list>}*)
<row value list> ::= (<value expression> {,<value expression>}*)
<subquery in> ::= {<value expression> IN <subquery>} | {(<value expression> {,<value expression>}*) IN <subquery>}
<is not null> ::= <value expression> IS NOT NULL
<is null> ::= <value expression> IS NULL
<like> ::= <value expression> LIKE "'"<string>"'" [CS | CI]
<value expression> ::= <polynomial> | <term> | <minus sign> | <paren value>
<polynomial> ::= <value expression> {+ <value expression> | - <value expression>}*
<term> ::= <value expression> {"*" <value expression> | / <value expression>}*
<minus sign> ::= - <paren value>
<paren value> ::= <primary value> | (<value expression>)
<primary value> := <aggregate> | <array value> | <case> | <entity field> | <function> | <cast> | <literal> | <scalar subquery> | <window function>
<aggregate> ::= {AVG | MAX | MEDIAN | MIN | MODE | SUM | STDDEV_POP | STDDEV_SAMP | VAR_POP | VAR_SAMP}(<value expression>) | COUNT([DISTINCT] [<value expression>])
<array value> ::= "ARRAY[" <value expression> {,<value expression>}* "]"
<case> ::= CASE WHEN <condition> THEN <value expression> {WHEN <condition> THEN <value expression>}* [ELSE <value expression>] END
<entity field> ::= <property name> | <reference>.<property name> | <correlated entity field>
<reference> ::= <reference name>{.<reference name>}*
<function> ::= <function name>() | <function name>(<value expression>{,<value expression>}*)
<function name> ::= REPLACE | UPPER | LOWER | CONCAT | SUBSTR | INSTR | CHAR_LENGTH | MOD | SQRT | POWER | ABS | CEIL | FLOOR | ROUND | TRUNCATE | YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | DATE_ADD | DATE_DIFF | CURRENT_DATE | CURRENT_TIME | CURRENT_DATETIME | LOCALTIME
<cast> ::= CAST(<value expression> AS <data type>)
<data type> ::= STRING | INTEGER | FLOAT | DECIMAL | BOOLEAN | SELECT | DATE | TIME | DATETIME
<scalar subquery> ::= <subquery>
<window function> ::= <window function type> OVER([<window partition by clause>] [<window order by clause>])
<window function type> ::= {ROW_NUMBER | RANK | DENSE_RANK | PERCENT_RANK | CUME_DIST}() | <aggregate>
<window partition by clause> ::= PARTITION BY <value expression> {,<value expression>}*
<window order by clause> ::= ORDER BY <sort spec> {,<sort spec>}*
<literal> ::= <boolean literal> | <string literal> | <integer literal> | <floating point literal> | <fixed point literal> | <datetime literal> | <date literal> | <time literal> | <select value literal> | NULL
<boolean literal> ::= TRUE | FALSE
<string literal> ::= "'" 文字列 "'"
<integer literal> ::= [-]数字[数字]*[i|I]
<floating point literal> ::= [-]数字[数字]*.数字[数字]*[f|F]
<fixed point literal> ::= [-]数字[数字]*.数字[数字]*[g|G]
<datetime literal> ::= "'" yyyy-MM-dd HH:mm:ss.SSS "'"{m|M}
<date literal> ::= "'" yyyy-MM-dd "'"{d|D}
<time literal> ::= "'" HH:mm:ss "'"{t|T}
<select value literal> ::= "'" SelectValueのvalue "'"{s|S}
<entity name> ::= Entityの定義名
<property name> ::= Entity属性の定義名
<reference name> ::= Entity属性(参照)の定義名
<subquery> ::= (<query> [ON <condition>])
<correlated entity field> ::= .[.]*{THIS | <entity field> | <reference>}
※scalar subqueryは単一値(1行1列)を返すsubquery
※correlated entity fieldはsubqueryのON句でのみ利用可能
コンストラクタと説明 |
---|
Query() |
Query(Select select,
From from,
Where where) |
Query(java.lang.String query)
EQL文字列を指定してQueryインスタンスを生成します。
|
修飾子とタイプ | メソッドと説明 |
---|---|
ASTNode |
accept(ASTTransformer transformer) |
void |
accept(QueryVisitor visitor) |
Query |
copy() |
boolean |
equals(java.lang.Object obj) |
Query |
from(java.lang.String entityName) |
Query |
from(java.lang.String entityName,
AsOf asOf) |
From |
getFrom() |
GroupBy |
getGroupBy() |
Having |
getHaving() |
Limit |
getLimit() |
OrderBy |
getOrderBy() |
java.util.List<Refer> |
getRefer() |
Select |
getSelect() |
Where |
getWhere() |
Query |
groupBy(java.lang.Object... groupingField)
groupBy項目を指定します。
|
int |
hashCode() |
Query |
having(Condition havingCondition) |
Query |
having(java.lang.String havingClause) |
Query |
hint(Hint hint)
ヒントを追加します。
|
Query |
hint(java.util.List<Hint> hintList) |
boolean |
isLocalized() |
boolean |
isVersiond() |
Query |
limit(int limit) |
Query |
limit(int limit,
int offset) |
Query |
localized()
localized=trueに設定します
|
Query |
localized(boolean localized) |
static PreparedQuery |
newPreparedQuery(java.lang.String query)
queryでEQL文字列を指定してPreparedQueryインスタンスを生成します。
|
static Query |
newQuery(java.lang.String query)
EQL文字列を指定してQueryインスタンスを生成します。
|
Query |
order(SortSpec... sortSpec) |
Refer |
refer(java.lang.String referenceName) |
Query |
refer(java.lang.String referenceName,
AsOf asOf) |
Query |
refer(java.lang.String referenceName,
AsOf asOf,
Condition onCondition) |
Query |
refer(java.lang.String referenceName,
Condition onCondition) |
Select |
select() |
Query |
select(HintComment hint,
java.lang.Object... value)
ヒント句指定しつつ、selectを構築します。
|
Query |
select(java.lang.Object... value)
selectを構築します。
|
Query |
selectAll(java.lang.String definitionName,
boolean distinct,
boolean withReferenceOidAndName) |
Query |
selectAll(java.lang.String definitionName,
boolean distinct,
boolean withReferenceOidAndName,
boolean withReferenceVersion) |
Query |
selectAll(java.lang.String definitionName,
boolean distinct,
boolean withReferenceOidAndName,
boolean withReferenceVersion,
boolean withMappedByReference) |
Query |
selectAll(java.lang.String definitionName,
HintComment hint,
boolean distinct,
boolean withReferenceOidAndName,
boolean withReferenceVersion,
boolean withMappedByReference) |
Query |
selectDistinct(HintComment hint,
java.lang.Object... value)
selectを構築します。
|
Query |
selectDistinct(java.lang.Object... value)
selectを構築します。
|
void |
setFrom(From from) |
void |
setGroupBy(GroupBy groupBy) |
void |
setHaving(Having having) |
void |
setLimit(Limit limit) |
void |
setLocalized(boolean localized) |
void |
setOrderBy(OrderBy orderBy) |
void |
setRefer(java.util.List<Refer> refer) |
void |
setSelect(Select select) |
void |
setVersiond(boolean versiond) |
void |
setWhere(Where where) |
java.lang.String |
toString() |
Query |
versioned()
versioned=trueに設定します
|
Query |
versioned(boolean versioned) |
Where |
where() |
Query |
where(Condition whereCondition) |
Query |
where(java.lang.String whereClause) |
public Query()
public Query(java.lang.String query) throws QueryException
query
- QueryException
public static Query newQuery(java.lang.String query)
query
- public static PreparedQuery newPreparedQuery(java.lang.String query)
query
- public int hashCode()
public boolean equals(java.lang.Object obj)
public java.lang.String toString()
public Select getSelect()
public void setSelect(Select select)
public From getFrom()
public void setFrom(From from)
public java.util.List<Refer> getRefer()
public void setRefer(java.util.List<Refer> refer)
public Where getWhere()
public void setWhere(Where where)
public GroupBy getGroupBy()
public void setGroupBy(GroupBy groupBy)
public Having getHaving()
public void setHaving(Having having)
public OrderBy getOrderBy()
public void setOrderBy(OrderBy orderBy)
public Limit getLimit()
public void setLimit(Limit limit)
public boolean isVersiond()
public void setVersiond(boolean versiond)
public boolean isLocalized()
public void setLocalized(boolean localized)
public void accept(QueryVisitor visitor)
public Select select()
public Query selectDistinct(java.lang.Object... value)
value
- selectする項目(ValueExpression or String)public Query selectDistinct(HintComment hint, java.lang.Object... value)
hint
- ヒントコメントvalue
- selectする項目(ValueExpression or String)public Query select(java.lang.Object... value)
value
- selectする項目(ValueExpression or String)public Query select(HintComment hint, java.lang.Object... value)
hint
- ヒントコメントvalue
- selectする項目(ValueExpression or String)public Query selectAll(java.lang.String definitionName, boolean distinct, boolean withReferenceOidAndName)
public Query selectAll(java.lang.String definitionName, boolean distinct, boolean withReferenceOidAndName, boolean withReferenceVersion)
public Query selectAll(java.lang.String definitionName, boolean distinct, boolean withReferenceOidAndName, boolean withReferenceVersion, boolean withMappedByReference)
public Query selectAll(java.lang.String definitionName, HintComment hint, boolean distinct, boolean withReferenceOidAndName, boolean withReferenceVersion, boolean withMappedByReference)
public Query hint(Hint hint)
hint
- public Query from(java.lang.String entityName)
public Refer refer(java.lang.String referenceName)
public Where where()
public Query where(java.lang.String whereClause)
public Query groupBy(java.lang.Object... groupingField)
groupingField
- groupByする項目(ValueExpression or String)public Query having(java.lang.String havingClause)
public Query limit(int limit)
public Query limit(int limit, int offset)
public Query versioned(boolean versioned)
public Query versioned()
public Query localized(boolean localized)
public Query localized()
public ASTNode accept(ASTTransformer transformer)