Я пытался сохранить данные в базе данных H2 с помощью Spring Boot JdbcTamplate с помощью следующего кода:
schema.sql:
create table if not exists Taco (
id identity,
name varchar(50) not null,
createdAt timestamp not null
);
, который является моим классом хранилища:
public class JdbcTacoRepository {
public long saveTacoInfo(Taco taco) {
taco.setCreatedAt(new Date());
PreparedStatementCreator psc = new PreparedStatementCreatorFactory(
"insert into Taco (name, createdAt) values ( ?,? )"
, Types.VARCHAR, Types.TIMESTAMP
).newPreparedStatementCreator(Arrays.asList(
taco.getName()
, new Timestamp(taco.getCreatedAt().getTime())
));
KeyHolder keyHolder = new GeneratedKeyHolder();
jdbc.update(psc, keyHolder);
return Objects.requireNonNull(
keyHolder.getKey() // in this place keyHolder.getKey() is null
).longValue();
}
}
но после вызова jdbc.update(psc, keyholder);
я получаю keyHolder
это Null
эталонный объект.
Что я не так сделал? Пожалуйста, помогите мне.