Package org.apache.cayenne.dba.oracle
Class OracleQualifierTranslator
java.lang.Object
org.apache.cayenne.access.translator.select.QueryAssemblerHelper
org.apache.cayenne.access.translator.select.QualifierTranslator
org.apache.cayenne.access.translator.select.TrimmingQualifierTranslator
org.apache.cayenne.dba.oracle.OracleQualifierTranslator
- All Implemented Interfaces:
TraversalHandler
public class OracleQualifierTranslator extends TrimmingQualifierTranslator
Oracle qualifier translator. In particular, trims INs with more than 1000
elements to an OR-set of INs with <= 1000 elements
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
OracleQualifierTranslator.INTrimmer
-
Field Summary
Fields inherited from class org.apache.cayenne.access.translator.select.TrimmingQualifierTranslator
trimFunction
Fields inherited from class org.apache.cayenne.access.translator.select.QualifierTranslator
caseInsensitive, matchingObject, objectMatchTranslator, qualifier, useAliasForExpressions, waitingForEndNode
Fields inherited from class org.apache.cayenne.access.translator.select.QueryAssemblerHelper
out, queryAssembler, strategy
-
Constructor Summary
Constructors Constructor Description OracleQualifierTranslator(QueryAssembler queryAssembler)
-
Method Summary
Modifier and Type Method Description protected void
appendExtractFunction(ASTExtract functionExpression)
Special case for extract date/time parts functions as they have many variantsprotected void
appendFunction(ASTFunctionCall functionExpression)
Append function name to result SQL Override this method to rename or skip function if generic name isn't supported on target DB.protected void
appendFunctionArgDivider(ASTFunctionCall functionExpression)
Append divider between function arguments.protected void
clearLastFunctionArgDivider(ASTFunctionCall functionExpression)
Clear last divider as we currently don't now position of argument until parent element is ended.protected void
doAppendPart(Expression rootNode)
Translates query qualifier to SQL WHERE clause.void
endNode(Expression node, Expression parentNode)
Called during the traversal after an expression node children processing is finished.protected boolean
parenthesisNeeded(Expression node, Expression parentNode)
Methods inherited from class org.apache.cayenne.access.translator.select.TrimmingQualifierTranslator
getTrimFunction, processColumn, processColumnWithQuoteSqlIdentifiers, setTrimFunction
Methods inherited from class org.apache.cayenne.access.translator.select.QualifierTranslator
appendFunctionArg, appendLiteral, appendObjectMatch, detectObjectMatch, doAppendPart, extractQualifier, finishedChild, objectNode, operandForBitwiseAnd, operandForBitwiseLeftShift, operandForBitwiseNot, operandForBitwiseOr, operandForBitwiseRightShift, operandForBitwiseXor, processRelTermination, setCaseInsensitive, setQualifier, setUseAliasForExpressions, startNode
Methods inherited from class org.apache.cayenne.access.translator.select.QueryAssemblerHelper
appendDbPath, appendLikeEscapeCharacter, appendLiteralDirect, appendObjPath, appendPart, getDbEntity, getObjEntity, paramsDbType, processRelTermination, setForceJoinForRelations
-
Constructor Details
-
OracleQualifierTranslator
-
-
Method Details
-
doAppendPart
Description copied from class:QualifierTranslator
Translates query qualifier to SQL WHERE clause. Qualifier is a method parameter.- Overrides:
doAppendPart
in classQualifierTranslator
-
endNode
Description copied from interface:TraversalHandler
Called during the traversal after an expression node children processing is finished.- Specified by:
endNode
in interfaceTraversalHandler
- Overrides:
endNode
in classQualifierTranslator
- Since:
- 4.0
-
appendFunction
Description copied from class:QualifierTranslator
Append function name to result SQL Override this method to rename or skip function if generic name isn't supported on target DB.- Overrides:
appendFunction
in classQualifierTranslator
- Since:
- 4.0
-
appendFunctionArgDivider
Description copied from class:QualifierTranslator
Append divider between function arguments. In overriding methods can be replaced e.g. for " || " for CONCAT operation- Overrides:
appendFunctionArgDivider
in classQualifierTranslator
- Since:
- 4.0
-
clearLastFunctionArgDivider
Description copied from class:QualifierTranslator
Clear last divider as we currently don't now position of argument until parent element is ended.- Overrides:
clearLastFunctionArgDivider
in classQualifierTranslator
- Since:
- 4.0
-
parenthesisNeeded
- Overrides:
parenthesisNeeded
in classQualifierTranslator
-
appendExtractFunction
Description copied from class:QualifierTranslator
Special case for extract date/time parts functions as they have many variants- Overrides:
appendExtractFunction
in classQualifierTranslator
-