class ExtraValueJoin extends Object implements Join
leftTable JOIN extraValueTable ON ...
This class is used by, for example, DynamicSpotQuery.joinExtraValue(ExtraValue, JoinType)
to create the
Join
query element that is needed. After the extra value
has been join it can be used in expressions in the query.
ExtraValueExpression
,
Dynamic.extraValue(ExtraValue)
Modifier and Type | Field and Description |
---|---|
private VirtualColumn[] |
columns |
private ExtraValue |
extraValue |
private JoinType |
joinType |
private VirtualTable |
left |
private VirtualTable |
right |
private VirtualDb |
vdb |
Constructor and Description |
---|
ExtraValueJoin(ExtraValue extraValue,
JoinType joinType)
Create a new join using the root entity table as the left table.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object other)
This join is equal to another ExtraValueJoin if they
join to the same extra value with the same join type.
|
Collection<? extends QueryElement> |
getChildren()
Get the children of this query element or null if it has no children.
|
String |
getThetaJoin(Query query,
DbControl dc) |
String |
getThetaJoinCondition(Query query,
DbControl dc) |
int |
hashCode() |
String |
toQl(Query query,
DbControl dc)
Create a query language string of the query element.
|
String |
toString() |
private final ExtraValue extraValue
private final VirtualDb vdb
private final JoinType joinType
private final VirtualTable left
private final VirtualTable right
private final VirtualColumn[] columns
ExtraValueJoin(ExtraValue extraValue, JoinType joinType)
SELECT ... FROM rootTable JOIN extraValueTable
.
The extra value table and which columns should be used in the join is found by examining the extra value properties, ie. value type and coordinate type.
extraValue
- The extra value to joinjoinType
- The type of joinpublic String toQl(Query query, DbControl dc) throws BaseException
QueryElement
Query.getQueryType()
method to find out which query language is wanted
in case the element requires different syntax for different languages.toQl
in interface QueryElement
query
- The query that is about to be executeddc
- The DbControl
object used to execute the queryBaseException
- If there is any other errorpublic Collection<? extends QueryElement> getChildren()
QueryElement
AddExpression
has two children, the expression
beeing added.getChildren
in interface QueryElement
public String getThetaJoin(Query query, DbControl dc) throws BaseException
getThetaJoin
in interface Join
BaseException
public String getThetaJoinCondition(Query query, DbControl dc) throws BaseException
getThetaJoinCondition
in interface Join
BaseException
public boolean equals(Object other)