@SqlBatch("INSERT INTO users (name) VALUES(?)") @GetGeneratedKeys List<User> createUsers(String... names); }
magic = ResultReturner.forOptionalReturn(sqlObjectType, method); } else { String[] columnNames = getGeneratedKeys.value(); magic = ResultReturner.forMethod(sqlObjectType, method);
@SqlBatch("insert into something (name) values(:names)") @GetGeneratedKeys int[] insert(List<String> names);
public SqlUpdateHandler(Class<?> sqlObjectType, Method method) { super(sqlObjectType, method); if (method.isAnnotationPresent(UseRowReducer.class)) { throw new UnsupportedOperationException("Cannot declare @UseRowReducer on a @SqlUpdate method."); } boolean isGetGeneratedKeys = method.isAnnotationPresent(GetGeneratedKeys.class); QualifiedType<?> returnType = QualifiedType.of( GenericTypes.resolveType(method.getGenericReturnType(), sqlObjectType)) .with(getQualifiers(method)); if (isGetGeneratedKeys) { ResultReturner magic = ResultReturner.forMethod(sqlObjectType, method); String[] columnNames = method.getAnnotation(GetGeneratedKeys.class).value(); this.returner = update -> { ResultBearing resultBearing = update.executeAndReturnGeneratedKeys(columnNames); UseRowMapper useRowMapper = method.getAnnotation(UseRowMapper.class); ResultIterable<?> iterable = useRowMapper == null ? resultBearing.mapTo(returnType) : resultBearing.map(rowMapperFor(useRowMapper)); return magic.mappedResult(iterable, update.getContext()); }; } else if (isNumeric(method.getReturnType())) { this.returner = update -> update.execute(); } else if (isBoolean(method.getReturnType())) { this.returner = update -> update.execute() > 0; } else { throw new UnableToCreateSqlObjectException(invalidReturnTypeMessage(method, returnType)); } }
@SqlUpdate("insert into something (name) values (:name)") @GetGeneratedKeys long insert(String name);
@GetGeneratedKeys @SqlUpdate("insert into bind_local_date_test(date_column) values (:date)") long insert(@Bind("date") LocalDate date); }
@SqlBatch("insert into something(name) values (:name)") @GetGeneratedKeys({"id", "created_on"}) @RegisterRowMapper(IdCreateTimeMapper.class) List<IdCreateTime> insertBatch(String... name); }
@SqlBatch("insert into something (name) values (:name)") @GetGeneratedKeys("id") int[] insert(@Bind("name") List<String> names);
@SqlUpdate("insert into something(name) values (:name)") @GetGeneratedKeys({"id", "created_on"}) @UseRowMapper(IdCreateTimeMapper.class) IdCreateTime insert(String name);
@SqlBatch("insert into something(name) values (:name)") @GetGeneratedKeys({"id", "created_on"}) @UseRowMapper(IdCreateTimeMapper.class) List<IdCreateTime> insertBatch(String... name); }
@SqlUpdate("insert into something(name) values (:name)") @GetGeneratedKeys({"id", "created_on"}) @RegisterRowMapper(IdCreateTimeMapper.class) IdCreateTime insert(String name);
@SqlUpdate("insert into something(name) values(:name)") @GetGeneratedKeys int addCoolName(@Bind("name") CoolName coolName);
@SqlBatch("insert into something (name) values (:name)") @GetGeneratedKeys List<Something> insertVarargs(@Bind("name") String... names); }
@SqlUpdate("insert into something (name) values (:it)") @GetGeneratedKeys String generatedKeyReturnType(@Bind String name); }
@SqlUpdate("insert into something (name) values (:name)") @GetGeneratedKeys long insert(@Bind("name") String name);
@SqlBatch("insert into something (name) values (:name)") @GetGeneratedKeys long[] insertNames(@Bind("name") String... names);
@SqlBatch("insert into something (name) values (:name)") @GetGeneratedKeys Something[] insertNamesToBean(@Bind("name") Iterable<String> names);
@SqlUpdate("insert into something (name, id) values (:name, nextval('id_sequence'))") @GetGeneratedKeys("id") long insert(@Bind("name") String name);
@GetGeneratedKeys @SqlUpdate("INSERT INTO people(id, firstName, lastName, created, modified) VALUES (:p.id, :p.firstName, :p.lastName, :now, :now)") @Timestamped int insert(@BindBean("p") Person person);
@SqlUpdate("insert into something (name) values (:name)") @GetGeneratedKeys long insert(String name);