Package net.sf.basedb.core
Class RealJoin
- java.lang.Object
-
- net.sf.basedb.core.RealJoin
-
- All Implemented Interfaces:
Join
,QueryElement
class RealJoin extends Object implements Join
Represents a join from one virtual table in the dynamic database to a table in the regular database or between two tables in the regular database.virtualTable vt JOIN regularTable rt ON rt.id = vt.leftColumn
.Note that the join is always done to the 'id' of the items in the regular table.
- Version:
- 2.0
- Author:
- Nicklas
- See Also:
RealTable
- Last modified
- $Date: 2012-09-14 09:28:35 +0200 (fr, 14 sep 2012) $
-
-
Field Summary
Fields Modifier and Type Field Description private JoinType
joinType
private RealTable
right
private RealTable
rLeft
private String
rLeftColumn
private VirtualTable
vLeft
private VirtualColumn
vLeftColumn
-
Constructor Summary
Constructors Constructor Description RealJoin(JoinType joinType, RealTable left, RealTable right, String leftColumn)
Create a new join between two regular tables.RealJoin(JoinType joinType, VirtualTable left, RealTable right, VirtualColumn leftColumn)
Create a new join between a virtual and a regular table.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object other)
This join is equal to another RealJoin if they join between the same tables using the same columns and join types.Collection<? extends QueryElement>
getChildren()
Get the children of this query element or null if it has no children.private String
getLeftTableAlias(Query query)
private String
getLeftTableColumn()
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()
-
-
-
Field Detail
-
joinType
private final JoinType joinType
-
right
private final RealTable right
-
vLeft
private VirtualTable vLeft
-
vLeftColumn
private VirtualColumn vLeftColumn
-
rLeft
private RealTable rLeft
-
rLeftColumn
private String rLeftColumn
-
-
Constructor Detail
-
RealJoin
RealJoin(JoinType joinType, VirtualTable left, RealTable right, VirtualColumn leftColumn)
Create a new join between a virtual and a regular table.SELECT ... FROM left JOIN right ON right.id = left.column
.- Parameters:
joinType
- The type of joinleft
- The left table to join from, if not specified we join from the root tableright
- The table to join toleftColumn
- The column in the left table to join from, we always join to the id of the real table
-
RealJoin
RealJoin(JoinType joinType, RealTable left, RealTable right, String leftColumn)
Create a new join between two regular tables.SELECT ... FROM left JOIN right ON right.id = left.column
.- Parameters:
joinType
- The type of joinleft
- The left table to join from, if not specified we join from the root tableright
- The table to join toleftColumn
- The column in the left table to join from, we always join to the id of the real table
-
-
Method Detail
-
toQl
public String toQl(Query query, DbControl dc) throws BaseException
Description copied from interface:QueryElement
Create a query language string of the query element. Use theQuery.getQueryType()
method to find out which query language is wanted in case the element requires different syntax for different languages.- Specified by:
toQl
in interfaceQueryElement
- Parameters:
query
- The query that is about to be executeddc
- TheDbControl
object used to execute the query- Throws:
BaseException
- If there is any other error
-
getChildren
public Collection<? extends QueryElement> getChildren()
Description copied from interface:QueryElement
Get the children of this query element or null if it has no children. For example theAddExpression
has two children, the expression beeing added.- Specified by:
getChildren
in interfaceQueryElement
- Returns:
- Always null
-
getThetaJoin
public String getThetaJoin(Query query, DbControl dc) throws BaseException
- Specified by:
getThetaJoin
in interfaceJoin
- Throws:
BaseException
-
getThetaJoinCondition
public String getThetaJoinCondition(Query query, DbControl dc) throws BaseException
- Specified by:
getThetaJoinCondition
in interfaceJoin
- Throws:
BaseException
-
equals
public boolean equals(Object other)
This join is equal to another RealJoin if they join between the same tables using the same columns and join types.
-
getLeftTableColumn
private String getLeftTableColumn()
-
-