jdb c .update успешно выполнено в базе данных, но ключевой держатель не возвращает содержимое - PullRequest
0 голосов
/ 06 августа 2020

это мой код

private 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();
    int res = jdbc.update(psc, keyHolder);
    log.info("res " + res);
    return keyHolder.getKey().longValue();
}

после отладки найдено keyHolder.getKey() return null, потому что GeneratedKeyHolder keyList пуст! есть предложения?

это моя таблица Taco sql:

create table if not exists Taco (
  id identity,
  name varchar(50) not null,
  createdAt timestamp not null
);

статус Insert выполняется нормально! База данных h2 содержит данные. но keyHolder.getKey имеет значение null.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...