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 SQLExpression
containsAsSubquery(SQLStatement stmt, ArrayExpression arrExpr, SQLExpression elemExpr)
Method to return an expression for Collection.contains using a subquery "EXISTS".protected boolean
elementTypeCompatible(Class elementType, Class collectionElementType)
SQLExpression
getExpression(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:SQLMethod
Return the expression for this SQL function.- Specified by:
getExpression
in 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
-
-