Constructor and Description |
---|
CollectionContainsMethod() |
Modifier and Type | Method and Description |
---|---|
protected void |
addRestrictionOnElement(SQLStatement stmt,
SQLExpression elemIdExpr,
SQLExpression elemExpr) |
protected SQLExpression |
containsAsJoin(SQLStatement stmt,
CollectionExpression collExpr,
SQLExpression elemExpr,
SQLJoin.JoinType joinType)
Method to return an expression for Collection.contains using INNER JOIN to the element.
|
protected SQLExpression |
containsAsSubquery(SQLStatement stmt,
CollectionExpression collExpr,
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.
|
protected boolean |
getNeedsSubquery(SQLStatement stmt,
SQLExpression collExpr,
SQLExpression elemExpr)
Convenience method to decide if we handle the contains() by using a subquery, or otherwise via an inner join.
|
public SQLExpression getExpression(SQLStatement stmt, SQLExpression expr, List<SQLExpression> args)
SQLMethod
getExpression
in interface SQLMethod
stmt
- SQLStatement that this expression is forexpr
- The expression that it is invoked onargs
- Arguments passed inprotected boolean getNeedsSubquery(SQLStatement stmt, SQLExpression collExpr, SQLExpression elemExpr)
stmt
- SQLStatementcollExpr
- SQL Expression for the collectionelemExpr
- SQL Expression for the elementprotected SQLExpression containsAsJoin(SQLStatement stmt, CollectionExpression collExpr, SQLExpression elemExpr, SQLJoin.JoinType joinType)
stmt
- SQLStatementcollExpr
- Collection expressionelemExpr
- Expression for the elementjoinType
- Join typeprotected SQLExpression containsAsSubquery(SQLStatement stmt, CollectionExpression collExpr, SQLExpression elemExpr)
SELECT 1 FROM JOIN_TBL A0_SUB WHERE A0_SUB.JOIN_OWN_ID = A0.ID AND A0_SUB.JOIN_ELEM_ID = {elemExpr}
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}
SELECT 1 FROM ELEM_TABLE A0_SUB WHERE A0_SUB.OWN_ID = A0.ID AND A0_SUB.ID = {elemExpr}
stmt
- SQLStatementcollExpr
- Collection expressionelemExpr
- Expression for the elementprotected void addRestrictionOnElement(SQLStatement stmt, SQLExpression elemIdExpr, SQLExpression elemExpr)
Copyright © 2019. All rights reserved.