org.datanucleus.store.rdbms.sql.method
Class ArrayContainsMethod
java.lang.Object
org.datanucleus.store.rdbms.sql.method.AbstractSQLMethod
org.datanucleus.store.rdbms.sql.method.ArrayContainsMethod
- All Implemented Interfaces:
- SQLMethod
public class ArrayContainsMethod
- extends AbstractSQLMethod
Method for evaluating {arrExpr}.contains(elemExpr).
Returns a BooleanExpression.
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ArrayContainsMethod
public ArrayContainsMethod()
getExpression
public SQLExpression getExpression(SQLExpression expr,
List args)
- Description copied from interface:
SQLMethod
- Return the expression for this SQL function.
- Parameters:
expr - The expression that it is invoked onargs - Arguments passed in
- Returns:
- The SQL expression using the SQL function
containsAsSubquery
protected SQLExpression containsAsSubquery(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}
and returns a BooleanSubqueryExpression ("EXISTS (subquery)")
- Parameters:
arrExpr - Collection expressionelemExpr - Expression for the element
- Returns:
- Contains expression
Copyright © 2012. All Rights Reserved.