org.hibernate.sql.ANSIJoinFragment Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate Show documentation
Show all versions of hibernate Show documentation
Relational Persistence for Java
//$Id: ANSIJoinFragment.java 4886 2004-12-05 15:04:21Z pgmjsd $
package org.hibernate.sql;
import org.hibernate.AssertionFailure;
/**
* An ANSI-style join
*
* @author Gavin King
*/
public class ANSIJoinFragment extends JoinFragment {
private StringBuffer buffer = new StringBuffer();
private StringBuffer conditions = new StringBuffer();
public void addJoin(String tableName, String alias, String[] fkColumns, String[] pkColumns, int joinType) {
addJoin(tableName, alias, fkColumns, pkColumns, joinType, null);
}
public void addJoin(String tableName, String alias, String[] fkColumns, String[] pkColumns, int joinType, String on) {
String joinString;
switch (joinType) {
case INNER_JOIN:
joinString = " inner join ";
break;
case LEFT_OUTER_JOIN:
joinString = " left outer join ";
break;
case RIGHT_OUTER_JOIN:
joinString = " right outer join ";
break;
case FULL_JOIN:
joinString = " full outer join ";
break;
default:
throw new AssertionFailure("undefined join type");
}
buffer.append(joinString)
.append(tableName)
.append(' ')
.append(alias)
.append(" on ");
for ( int j=0; j