MultiIndexFieldMapper<T>[] multiIndexFieldMappers = statementMapperBuilder.buildIndexFieldMappers(defaultContextFactoryBuilder); PostgresqlBatchInsertQueryExecutor<T> queryExecutor = new PostgresqlBatchInsertQueryExecutor<T>( crudMeta,
MultiIndexFieldMapper<T>[] multiIndexFieldMappers = statementMapperBuilder.buildIndexFieldMappers(defaultContextFactoryBuilder); PostgresqlBatchInsertQueryExecutor<T> queryExecutor = new PostgresqlBatchInsertQueryExecutor<T>( crudMeta,
private static <T, K> KeyTupleQueryPreparer<K> buildKeyTupleQueryPreparer(ClassMeta<K> keyTarget, CrudMeta crudMeta, JdbcMapperFactory jdbcMapperFactory) { PreparedStatementMapperBuilder<K> builder = jdbcMapperFactory.from(keyTarget); List<String> primaryKeys = new ArrayList<String>(); int i = 1; for(ColumnMeta cm : crudMeta.getColumnMetas()) { if (cm.isKey()) { primaryKeys.add(cm.getColumn()); builder.addColumn(cm.toJdbcColumnKey(i)); i++; } } DefaultContextFactoryBuilder contextFactoryBuilder = new DefaultContextFactoryBuilder(); MultiIndexFieldMapper<K>[] multiIndexFieldMappers = builder.buildIndexFieldMappers(contextFactoryBuilder); return new KeyTupleQueryPreparer<K>(multiIndexFieldMappers, contextFactoryBuilder.build(), primaryKeys.toArray(new String[0])); }
MultiIndexFieldMapper<T>[] multiIndexFieldMappers = statementMapperBuilder.buildIndexFieldMappers(builder); MysqlBatchInsertQueryExecutor<T> queryExecutor = new MysqlBatchInsertQueryExecutor<T>( crudMeta,
private static <T, K> KeyTupleQueryPreparer<K> buildKeyTupleQueryPreparer(ClassMeta<K> keyTarget, CrudMeta crudMeta, JdbcMapperFactory jdbcMapperFactory) { PreparedStatementMapperBuilder<K> builder = jdbcMapperFactory.from(keyTarget); List<String> primaryKeys = new ArrayList<String>(); int i = 1; for(ColumnMeta cm : crudMeta.getColumnMetas()) { if (cm.isKey()) { primaryKeys.add(cm.getColumn()); builder.addColumn(cm.toJdbcColumnKey(i)); i++; } } DefaultContextFactoryBuilder contextFactoryBuilder = new DefaultContextFactoryBuilder(); MultiIndexFieldMapper<K>[] multiIndexFieldMappers = builder.buildIndexFieldMappers(contextFactoryBuilder); return new KeyTupleQueryPreparer<K>(multiIndexFieldMappers, contextFactoryBuilder.build(), primaryKeys.toArray(new String[0])); }
MultiIndexFieldMapper<T>[] multiIndexFieldMappers = statementMapperBuilder.buildIndexFieldMappers(builder); MysqlBatchInsertQueryExecutor<T> queryExecutor = new MysqlBatchInsertQueryExecutor<T>( crudMeta,
@Test public void jdbcMapperExtrapolateGetterFromConstructor() throws Exception { final MultiIndexFieldMapper<Foo>[] fieldMappers = JdbcMapperFactory.newInstance().buildFrom(Foo.class).addColumn("bar").buildIndexFieldMappers(EmptyContextFactoryBuilder.INSTANCE); assertEquals(1, fieldMappers.length); PreparedStatement ps = mock(PreparedStatement.class); fieldMappers[0].map(ps, new Foo(new BarOneProp("val")), 0, EmptyContext.INSTANCE); verify(ps).setString(1, "val"); JdbcMapperFactory.newInstance().buildFrom(Crux.class).addColumn("foo").buildIndexFieldMappers(EmptyContextFactoryBuilder.INSTANCE); }
@Test public void jdbcMapperExtrapolateFailToFindSetter() { try { final MultiIndexFieldMapper<Foo2>[] indexFieldMappers = JdbcMapperFactory.newInstance().buildFrom(Foo2.class).addColumn("bar").buildIndexFieldMappers(EmptyContextFactoryBuilder.INSTANCE); fail(); } catch (MapperBuildingException e) { // expected } }
private QueryPreparer<T> preparedStatementMapper(NamedSqlQuery query, String[] generatedKeys) { for(int i = 0; i < query.getParametersSize(); i++) { addColumn(query.getParameter(i).getName()); } boolean hasMultiIndex = propertyMappingsBuilder.forEachProperties(new ForEachCallBack<PropertyMapping<T, ?, JdbcColumnKey>>() { boolean hasMultiIndex; @Override public void handle(PropertyMapping<T, ?, JdbcColumnKey> pm) { hasMultiIndex |= isMultiIndex(pm.getPropertyMeta()); } }).hasMultiIndex; if (hasMultiIndex) { MappingContextFactoryBuilder<T, JdbcColumnKey> mappingContextFactoryBuilder = new MappingContextFactoryBuilder<T, JdbcColumnKey>(keySourceGetter(), !mapperConfig.unorderedJoin()); return new MultiIndexQueryPreparer<T>(query, buildIndexFieldMappers(mappingContextFactoryBuilder), generatedKeys, mappingContextFactoryBuilder.build()); } else { return new MapperQueryPreparer<T>(query, mapper(), generatedKeys); } }
private QueryPreparer<T> preparedStatementMapper(NamedSqlQuery query, String[] generatedKeys) { for(int i = 0; i < query.getParametersSize(); i++) { addColumn(query.getParameter(i).getName()); } boolean hasMultiIndex = propertyMappingsBuilder.forEachProperties(new ForEachCallBack<PropertyMapping<T, ?, JdbcColumnKey>>() { boolean hasMultiIndex; @Override public void handle(PropertyMapping<T, ?, JdbcColumnKey> pm) { hasMultiIndex |= isMultiIndex(pm.getPropertyMeta()); } }).hasMultiIndex; if (hasMultiIndex) { MappingContextFactoryBuilder<T, JdbcColumnKey> mappingContextFactoryBuilder = new MappingContextFactoryBuilder<T, JdbcColumnKey>(keySourceGetter(), !mapperConfig.unorderedJoin()); return new MultiIndexQueryPreparer<T>(query, buildIndexFieldMappers(mappingContextFactoryBuilder), generatedKeys, mappingContextFactoryBuilder.build()); } else { return new MapperQueryPreparer<T>(query, mapper(), generatedKeys); } }
@Test public void jdbcMapperExtrapolateOverrideSetter() { JdbcMapperFactory .newInstance() .addColumnProperty("bar", new IndexedSetterProperty(new IndexedSetter<PreparedStatement, Bar2Prop>() { @Override public void set(PreparedStatement target, Bar2Prop value, int index) throws Exception { target.setString(index, value.getVal()); target.setInt(index + 1, value.getI()); } })) .buildFrom(Foo2.class) .addColumn("bar") .buildIndexFieldMappers(EmptyContextFactoryBuilder.INSTANCE); } @Test
@Test public void jdbcMapperExtrapolateOverrideSetterFactory() { JdbcMapperFactory .newInstance() .addColumnProperty("bar", new IndexedSetterFactoryProperty( new IndexedSetterFactory<PreparedStatement, PropertyMapping<?, ?, JdbcColumnKey>>() { @SuppressWarnings("unchecked") @Override public <P> IndexedSetter<PreparedStatement, P> getIndexedSetter(final PropertyMapping<?, ?, JdbcColumnKey> arg, Object... properties) { return (IndexedSetter<PreparedStatement, P>) new IndexedSetter<PreparedStatement, Bar2Prop>() { @Override public void set(PreparedStatement target, Bar2Prop value, int index) throws Exception { target.setString(index, value.getVal()); target.setInt(index + 1, value.getI()); } }; } } )) .buildFrom(Foo2.class) .addColumn("bar") .buildIndexFieldMappers(EmptyContextFactoryBuilder.INSTANCE); } }