class SqlHasCreateJoin2
    extends AbstractSqlHasCreateJoin
    implements HasCreateJoin2 {

    public SqlHasCreateJoin2(
        final DbmsHandlerComponent dbmsHandlerComponent,
        final Project project,
        final SqlAdapterMapper sqlAdapterMapper,
        final boolean allowStreamIteratorAndSpliterator
    ) {
        super(dbmsHandlerComponent, project, sqlAdapterMapper, allowStreamIteratorAndSpliterator);
    }

    @Override
    public <T0, T1, T> Join<T> createJoin(
        final List<Stage<?>> stages,
        final BiFunction<T0, T1, T> constructor,
        final TableIdentifier<T0> t0,
        final TableIdentifier<T1> t1
    ) {<FILL_FUNCTION_BODY>}

}

        final SqlFunction<ResultSet, T0> rsMapper0 = rsMapper(stages, 0, t0);
        final SqlFunction<ResultSet, T1> rsMapper1 = rsMapper(stages, 1, t1);
        final SqlFunction<ResultSet, T> rsMapper = rs -> constructor.apply(
            rsMapper0.apply(rs),
            rsMapper1.apply(rs)
        );
        return newJoin(stages, rsMapper);
    
<methods><variables>private final non-sealed boolean allowStreamIteratorAndSpliterator,private final non-sealed com.speedment.runtime.core.component.DbmsHandlerComponent dbmsHandlerComponent,private final non-sealed com.speedment.runtime.config.Project project,private final non-sealed com.speedment.runtime.join.internal.component.stream.SqlAdapterMapper sqlAdapterMapper