public <ContainerType> ContainerType list(Class<ContainerType> containerType) { ContainerBuilder<ContainerType> builder = getContainerMapperRegistry().createBuilderFor(containerType); return fold(builder, new Folder3<ContainerBuilder<ContainerType>, ResultType>() { public ContainerBuilder<ContainerType> fold(ContainerBuilder<ContainerType> accumulator, ResultType rs, FoldController ctl, StatementContext ctx) throws SQLException { accumulator.add(rs); return accumulator; } }).build(); }
@Override public <ContainerType> ContainerType list(Class<ContainerType> containerType) { ContainerBuilder<ContainerType> builder = getContainerMapperRegistry().createBuilderFor(containerType); return fold(builder, new Folder3<ContainerBuilder<ContainerType>, ResultType>() { @Override public ContainerBuilder<ContainerType> fold(ContainerBuilder<ContainerType> accumulator, ResultType rs, FoldController ctl, StatementContext ctx) throws SQLException { accumulator.add(rs); return accumulator; } }).build(); }
public <T> T first(Class<T> containerType) { addStatementCustomizer(StatementCustomizers.MAX_ROW_ONE); ContainerBuilder builder = getContainerMapperRegistry().createBuilderFor(containerType); return (T) this.fold(builder, new Folder3<ContainerBuilder, ResultType>() { public ContainerBuilder fold(ContainerBuilder accumulator, ResultType rs, FoldController control, StatementContext ctx) throws SQLException { accumulator.add(rs); control.abort(); return accumulator; } }).build(); }
@Override public <T> T first(Class<T> containerType) { // Kill Bill specific: assume our queries will always either use LIMIT 1 or will return exactly one row (see ResultReturnThing) // This saves a roundtrip (set @@SQL_SELECT_LIMIT=1) //addStatementCustomizer(StatementCustomizers.MAX_ROW_ONE); ContainerBuilder builder = getContainerMapperRegistry().createBuilderFor(containerType); return (T) this.fold(builder, new Folder3<ContainerBuilder, ResultType>() { @Override public ContainerBuilder fold(ContainerBuilder accumulator, ResultType rs, FoldController control, StatementContext ctx) throws SQLException { accumulator.add(rs); control.abort(); return accumulator; } }).build(); }
public <T> Query<T> map(ResultSetMapper<T> mapper) { return new Query<T>(getParameters(), mapper, getStatementLocator(), getRewriter(), getHandle(), getStatementBuilder(), getSql(), getConcreteContext(), getLog(), getTimingCollector(), getStatementCustomizers(), mappingRegistry.createChild(), getForeman().createChild(), getContainerMapperRegistry().createChild()); }