@@ -0,0 +1,2324 @@
+/**%0A *%0A * Copyright (c) 2006-2019, Speedment, Inc. All Rights Reserved.%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22); You may not%0A * use this file except in compliance with the License. You may obtain a copy of%0A * the License at:%0A *%0A * http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS, WITHOUT%0A * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the%0A * License for the specific language governing permissions and limitations under%0A * the License.%0A */%0Apackage com.speedment.example.basic_example.extra;%0A%0Aimport com.company.sakila.SakilaApplication;%0Aimport com.company.sakila.db0.sakila.film.Film;%0Aimport com.company.sakila.db0.sakila.film.FilmManager;%0Aimport com.company.sakila.db0.sakila.language.Language;%0Aimport com.speedment.common.tuple.Tuple2;%0Aimport com.speedment.common.tuple.Tuples;%0Aimport com.speedment.runtime.config.identifier.TableIdentifier;%0Aimport com.speedment.runtime.field.trait.HasComparableOperators;%0Aimport com.speedment.runtime.join.Join;%0Aimport com.speedment.runtime.join.JoinComponent;%0A%0Aimport static com.speedment.example.basic_example.util.ExampleUtil.buildApplication;%0A%0A/**%0A *%0A * @author Per Minborg%0A */%0Apublic class JoinGenericTables %7B%0A%0A    private final SakilaApplication app;%0A    private final JoinComponent joinComponent;%0A    private final FilmManager films;%0A%0A    private JoinGenericTables() %7B%0A        app = buildApplication();%0A        joinComponent = app.getOrThrow(JoinComponent.class);%0A        films = app.getOrThrow(FilmManager.class);%0A    %7D%0A%0A    public static void main(String%5B%5D args) %7B%0A        new JoinGenericTables().run();%0A    %7D%0A%0A    private void run() %7B%0A        joinGenericTables(%0A            FilmManager.IDENTIFIER,%0A            Film.LANGUAGE_ID,%0A            Language.LANGUAGE_ID%0A        );%0A    %7D%0A%0A    private %3CT0, T1%3E void joinGenericTables(%0A        TableIdentifier%3CT0%3E ti0,%0A        HasComparableOperators%3CT0, ?%3E f0,%0A        HasComparableOperators%3CT1, ?%3E f1%0A    ) %7B%0A%0A        Join%3CTuple2%3CT0, T1%3E%3E join = joinComponent.from(ti0)%0A            .innerJoinOn(f1).equal(f0)%0A            .build(Tuples::of);%0A%0A        join.stream()%0A            .limit(3)%0A            .forEachOrdered(System.out::println);%0A%0A%0A    %7D%0A%0A%7D%0A

Add example with generic join tables/fields