ラムダで指定できなくはないが、型パラメータが面倒臭いことになる
val query = select({ it.name }, from = ::_Emp) { e -> where { eq(e.id, 1) }}| fun String.globalExtension() { | |
| println(this) | |
| } | |
| class Scope { | |
| fun String.narrowExtension() { | |
| println(this) | |
| } | |
| } | 
| package org.komapper.quickstart | |
| import org.komapper.annotation.KomapperAutoIncrement | |
| import org.komapper.annotation.KomapperEntity | |
| import org.komapper.annotation.KomapperId | |
| import org.komapper.core.dsl.EntityDsl | |
| import org.komapper.core.dsl.SchemaDsl | |
| import org.komapper.core.dsl.expression.ColumnExpression | |
| import org.komapper.core.dsl.scope.WhereDeclaration | |
| import org.komapper.jdbc.JdbcDatabase | 
| val query = select(::_製品移動) { a -> | |
| val b = leftJoin(::_倉庫) { b -> | |
| eq(a.移送元倉庫id, b.倉庫id) | |
| } | |
| val c = leftJoin(::_倉庫) { c -> | |
| eq(a.移送先倉庫id, c.倉庫id) | |
| } | |
| associate(a, b) { 製品移動, 倉庫 -> | |
| 製品移動.移送元倉庫 = 倉庫 | |
| } | 
| @Dao | |
| public interface FooDao { | |
| public default <R> R findByIds(List<FooId> ids, Collector<Foo, ?, R> collctor) { | |
| FooInteranlDao dao = DaoFactory.get(FooInteranlDao.class); | |
| return Lists.partition(ids, 5000).stream() // partition は List<A> を 第二引数の数ごと区切ってList<List<A>> にする処理です | |
| flatMap(dao::findByIdsInternally) | |
| collect(collctor); | |
| } | |
| } | 
| @Dao | |
| public interface EmployeeDao { | |
| default List<Employee> selectWithBuilder() { | |
| return selectWithBuilder_private(); | |
| } | |
| private List<Employee> selectWithBuilder_private() { | |
| Config config = Config.get(this); | |
| SelectBuilder builder = SelectBuilder.newInstance(config); | 
| package sample; | |
| public class AppConfig implements Config { | |
| @Override | |
| public QueryImplementors getQueryImplementors() { | |
| return new QueryImplementors() { | |
| @Override | |
| public SqlFileSelectQuery createSqlFileSelectQuery(Method method) { | |
| if (method.isAnnotationPresent(Unload.class)) { | 
| @Entity | |
| public class Era { | |
| @Id | |
| public Integer id; | |
| public String name; | |
| public Interval interval; | |
| } |