/** * * @param target the type * @param <T> the type * @return a builder to create a mapper from target to PreparedStatement */ public <T> PreparedStatementMapperBuilder<T> buildFrom(final Class<T> target) { return buildFrom((Type) target); }
/** * * @param target the type * @param <T> the type * @return a builder to create a mapper from target to PreparedStatement */ public <T> PreparedStatementMapperBuilder<T> buildFrom(final Class<T> target) { return buildFrom((Type) target); }
public <T> PreparedStatementMapperBuilder<T> from(final ClassMeta<T> classMeta) { return buildFrom(classMeta); }
public <T> PreparedStatementMapperBuilder<T> from(final TypeReference<T> target) { return buildFrom(target); }
public <T> PreparedStatementMapperBuilder<T> from(final TypeReference<T> target) { return buildFrom(target); }
public <T> PreparedStatementMapperBuilder<T> from(final Class<T> target) { return buildFrom(target); }
public <T> PreparedStatementMapperBuilder<T> from(final Type target) { return buildFrom(target); }
public <T> PreparedStatementMapperBuilder<T> from(final Type target) { return buildFrom(target); }
public <T> PreparedStatementMapperBuilder<T> buildFrom(final Type target) { ClassMeta<T> classMeta = getClassMeta(target); return buildFrom(classMeta); }
public <T> PreparedStatementMapperBuilder<T> buildFrom(final Type target) { ClassMeta<T> classMeta = getClassMeta(target); return buildFrom(classMeta); }
public <T> PreparedStatementMapperBuilder<T> buildFrom(final TypeReference<T> target) { return buildFrom(target.getType()); }
public <T> PreparedStatementMapperBuilder<T> buildFrom(final TypeReference<T> target) { return buildFrom(target.getType()); }
@Test public void testDirectMeta() throws Exception { PreparedStatementMapperBuilder<DMClass> mapperBuilder = JdbcMapperFactory.newInstance().buildFrom(DMClass.class); mapperBuilder.addColumn("time"); FieldMapper<DMClass, PreparedStatement> mapper = mapperBuilder.mapper(); DMClass dmClass = new DMClass(); dmClass.setTime(new Date()); PreparedStatement ps = mock(PreparedStatement.class); mapper.mapTo(dmClass, ps, null); verify(ps).setTimestamp(1, new Timestamp(dmClass.getTime().getTime())); } @Test
@Test public void testGetterOnlyMethod() throws Exception { PreparedStatementMapperBuilder<DMClass> mapperBuilder = JdbcMapperFactory.newInstance().buildFrom(DMClass.class); mapperBuilder.addColumn("value"); FieldMapper<DMClass, PreparedStatement> mapper = mapperBuilder.mapper(); DMClass dmClass = new DMClass(); PreparedStatement ps = mock(PreparedStatement.class); mapper.mapTo(dmClass, ps, null); verify(ps).setString(1, "value"); }
@Test public void testCustomGetterOnNonExistantProp() throws Exception { PreparedStatementMapperBuilder<Object> mapperBuilder = JdbcMapperFactory.newInstance() .addColumnProperty("text", new ConstantValueProperty<String>("value2", String.class)) .buildFrom(Object.class); mapperBuilder.addColumn("text"); FieldMapper<Object, PreparedStatement> mapper = mapperBuilder.mapper(); PreparedStatement ps = mock(PreparedStatement.class); mapper.mapTo(new Object(), ps, null); verify(ps).setString(1, "value2"); } }
@Test public void testRename() throws Exception { PreparedStatementMapperBuilder<DMClass> mapperBuilder = JdbcMapperFactory.newInstance() .addAlias("val", "value") .buildFrom(DMClass.class); mapperBuilder.addColumn("val"); FieldMapper<DMClass, PreparedStatement> mapper = mapperBuilder.mapper(); DMClass dmClass = new DMClass(); PreparedStatement ps = mock(PreparedStatement.class); mapper.mapTo(dmClass, ps, null); verify(ps).setString(1, "value"); }
@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 } }
@Test public void jdbcMapperExtrapolateFailToFindSetter() { try { JdbcMapperFactory.newInstance().buildFrom(Foo2.class).addColumn("bar").mapper(); fail(); } catch (MapperBuildingException e) { // expected } }