@Override public JoinFragment createOuterJoinFragment() { return new OracleJoinFragment(); }
public void addJoin(String tableName, String alias, String[] fkColumns, String[] pkColumns, JoinType joinType, String on) { //arbitrary on clause ignored!! addJoin( tableName, alias, fkColumns, pkColumns, joinType ); if ( joinType == JoinType.INNER_JOIN ) { addCondition( on ); } else if ( joinType == JoinType.LEFT_OUTER_JOIN ) { addLeftOuterJoinCondition( on ); } else { throw new UnsupportedOperationException( "join type not supported by OracleJoinFragment (use Oracle9iDialect/Oracle10gDialect)" ); } }
public void addJoin(String tableName, String alias, String[] fkColumns, String[] pkColumns, JoinType joinType) { addCrossJoin( tableName, alias ); for ( int j = 0; j < fkColumns.length; j++ ) { setHasThetaJoins( true ); afterWhere.append( " and " ) .append( fkColumns[j] ); if ( joinType == JoinType.RIGHT_OUTER_JOIN || joinType == JoinType.FULL_JOIN ) { afterWhere.append( "(+)" ); } afterWhere.append( '=' ) .append( alias ) .append( '.' ) .append( pkColumns[j] ); if ( joinType == JoinType.LEFT_OUTER_JOIN || joinType == JoinType.FULL_JOIN ) { afterWhere.append( "(+)" ); } } }
public boolean addCondition(String condition) { return addCondition( afterWhere, condition ); }
/** * This method is a bit of a hack, and assumes * that the column on the "right" side of the * join appears on the "left" side of the * operator, which is extremely wierd if this * was a normal join condition, but is natural * for a filter. */ private void addLeftOuterJoinCondition(String on) { StringBuilder buf = new StringBuilder( on ); for ( int i = 0; i < buf.length(); i++ ) { char character = buf.charAt( i ); final boolean isInsertPoint = OPERATORS.contains( Character.valueOf( character ) ) || ( character == ' ' && buf.length() > i + 3 && "is ".equals( buf.substring( i + 1, i + 4 ) ) ); if ( isInsertPoint ) { buf.insert( i, "(+)" ); i += 3; } } addCondition( buf.toString() ); }
public void addJoin(String tableName, String alias, String[][] fkColumns, String[] pkColumns, JoinType joinType, String on) { //arbitrary on clause ignored!! addJoin( tableName, alias, fkColumns, pkColumns, joinType ); if ( joinType == JoinType.INNER_JOIN ) { addCondition( on ); } else if ( joinType == JoinType.LEFT_OUTER_JOIN ) { addLeftOuterJoinCondition( on ); } else { throw new UnsupportedOperationException( "join type not supported by OracleJoinFragment (use Oracle9iDialect/Oracle10gDialect)" ); } }
public void addJoin(String tableName, String alias, String[][] fkColumns, String[] pkColumns, JoinType joinType) { addCrossJoin( tableName, alias ); afterWhere.append( " and " ); for ( int j = 0; j < fkColumns[i].length; j++ ) { setHasThetaJoins( true ); afterWhere.append( fkColumns[i][j] ); if ( joinType == JoinType.RIGHT_OUTER_JOIN || joinType == JoinType.FULL_JOIN ) {
@Override public JoinFragment createOuterJoinFragment() { return new OracleJoinFragment(); }
public boolean addCondition(String condition) { return addCondition( afterWhere, condition ); }
public void addJoin(String tableName, String alias, String[] fkColumns, String[] pkColumns, int joinType, String on) { //arbitrary on clause ignored!! addJoin( tableName, alias, fkColumns, pkColumns, joinType ); if ( joinType == JoinFragment.INNER_JOIN ) { addCondition( on ); } else if ( joinType == JoinFragment.LEFT_OUTER_JOIN ) { addLeftOuterJoinCondition( on ); } else { throw new UnsupportedOperationException( "join type not supported by OracleJoinFragment (use Oracle9Dialect)" ); } }
public void addJoin(String tableName, String alias, String[] fkColumns, String[] pkColumns, JoinType joinType) { addCrossJoin( tableName, alias ); for ( int j = 0; j < fkColumns.length; j++ ) { setHasThetaJoins( true ); afterWhere.append( " and " ) .append( fkColumns[j] ); if ( joinType == JoinType.RIGHT_OUTER_JOIN || joinType == JoinType.FULL_JOIN ) afterWhere.append( "(+)" ); afterWhere.append( '=' ) .append( alias ) .append( '.' ) .append( pkColumns[j] ); if ( joinType == JoinType.LEFT_OUTER_JOIN || joinType == JoinType.FULL_JOIN ) afterWhere.append( "(+)" ); } }
@Override public JoinFragment createOuterJoinFragment() { return new OracleJoinFragment(); }
public boolean addCondition(String condition) { return addCondition( afterWhere, condition ); }
public void addJoin(String tableName, String alias, String[] fkColumns, String[] pkColumns, JoinType joinType, String on) { //arbitrary on clause ignored!! addJoin( tableName, alias, fkColumns, pkColumns, joinType ); if ( joinType == JoinType.INNER_JOIN ) { addCondition( on ); } else if ( joinType == JoinType.LEFT_OUTER_JOIN ) { addLeftOuterJoinCondition( on ); } else { throw new UnsupportedOperationException( "join type not supported by OracleJoinFragment (use Oracle9iDialect/Oracle10gDialect)" ); } }
public void addJoin(String tableName, String alias, String[] fkColumns, String[] pkColumns, JoinType joinType) { addCrossJoin( tableName, alias ); for ( int j = 0; j < fkColumns.length; j++ ) { setHasThetaJoins( true ); afterWhere.append( " and " ) .append( fkColumns[j] ); if ( joinType == JoinType.RIGHT_OUTER_JOIN || joinType == JoinType.FULL_JOIN ) afterWhere.append( "(+)" ); afterWhere.append( '=' ) .append( alias ) .append( '.' ) .append( pkColumns[j] ); if ( joinType == JoinType.LEFT_OUTER_JOIN || joinType == JoinType.FULL_JOIN ) afterWhere.append( "(+)" ); } }
public JoinFragment copy() { OracleJoinFragment copy = new OracleJoinFragment(); copy.afterFrom = new StringBuilder( afterFrom.toString() ); copy.afterWhere = new StringBuilder( afterWhere.toString() ); return copy; }
public boolean addCondition(String condition) { return addCondition( afterWhere, condition ); }
public void addJoin(String tableName, String alias, String[] fkColumns, String[] pkColumns, JoinType joinType, String on) { //arbitrary on clause ignored!! addJoin( tableName, alias, fkColumns, pkColumns, joinType ); if ( joinType == JoinType.INNER_JOIN ) { addCondition( on ); } else if ( joinType == JoinType.LEFT_OUTER_JOIN ) { addLeftOuterJoinCondition( on ); } else { throw new UnsupportedOperationException( "join type not supported by OracleJoinFragment (use Oracle9iDialect/Oracle10gDialect)" ); } }
public void addJoin(String tableName, String alias, String[] fkColumns, String[] pkColumns, int joinType) { addCrossJoin( tableName, alias ); for ( int j = 0; j < fkColumns.length; j++ ) { setHasThetaJoins( true ); afterWhere.append( " and " ) .append( fkColumns[j] ); if ( joinType == RIGHT_OUTER_JOIN || joinType == FULL_JOIN ) afterWhere.append( "(+)" ); afterWhere.append( '=' ) .append( alias ) .append( '.' ) .append( pkColumns[j] ); if ( joinType == LEFT_OUTER_JOIN || joinType == FULL_JOIN ) afterWhere.append( "(+)" ); } }
@Override public JoinFragment createOuterJoinFragment() { return new OracleJoinFragment(); } @Override