Class ArrayContainsMethod
- java.lang.Object
-
- org.datanucleus.store.rdbms.sql.method.ArrayContainsMethod
-
-
Constructor Summary
Constructors Constructor Description ArrayContainsMethod()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected SQLExpressioncontainsAsSubquery(SQLStatement stmt, ArrayExpression arrExpr, SQLExpression elemExpr)Method to return an expression for Collection.contains using a subquery "EXISTS".protected booleanelementTypeCompatible(Class elementType, Class collectionElementType)SQLExpressiongetExpression(SQLStatement stmt, SQLExpression expr, List<SQLExpression> args)Return the expression for this SQL function.
-
-
-
Method Detail
-
getExpression
public SQLExpression getExpression(SQLStatement stmt, SQLExpression expr, List<SQLExpression> args)
Description copied from interface:SQLMethodReturn the expression for this SQL function.- Specified by:
getExpressionin interfaceSQLMethod- Parameters:
stmt- SQLStatement that this expression is forexpr- The expression that it is invoked onargs- Arguments passed in- Returns:
- The SQL expression using the SQL function
-
containsAsSubquery
protected SQLExpression containsAsSubquery(SQLStatement stmt, ArrayExpression arrExpr, SQLExpression elemExpr)
Method to return an expression for Collection.contains using a subquery "EXISTS". This is for use when there are "!contains" or "OR" operations in the filter. Creates the following SQL,- Collection of NonPC using join table
SELECT 1 FROM JOIN_TBL A0_SUB WHERE A0_SUB.JOIN_OWN_ID = A0.ID AND A0_SUB.JOIN_ELEM_ID = {elemExpr} - Collection of PC using join table
SELECT 1 FROM ELEM_TABLE A0_SUB INNER JOIN JOIN_TBL B0 ON ... WHERE B0.JOIN_OWN_ID = A0.ID AND A0_SUB.ID = {elemExpr}
- Parameters:
stmt- SQLStatementarrExpr- Collection expressionelemExpr- Expression for the element- Returns:
- Contains expression
- Collection of NonPC using join table
-
-