У меня есть две таблицы, в которые я пытаюсь вставить строку.Связан внешним ключом.Я использую Java 8 Postgres 9.5.4.
Я пытался использовать предложение RETURNING, которое работает в pgAdmin (значения> = 1), но при запуске с использованием моего Java-приложения.затем значение устанавливается равным -1, и выдается ошибка.
Это мой рабочий запрос для pgAdmin,
INSERT INTO counting_table (count1, cout2)
VALUES (3, 2) RETURNING id
, который возвращает правильное значение в pgAdmin, но при вводе как,
@SqlUpdate("INSERT INTO counting_table (count1, count2) " +
"VALUES (:count1, :count2) " +
"RETURNING id")
int insertCountingTable(@Bind("count1") int count1,
@Bind("count2")int count2);
@CreateSqlObject
@Override
public void add(Person person, int count1, int count2)
{
try(Handle handle = jdbi.open())
{
PersonDao personDao = handle.attach(PersonDao.class);
int id = personDao.insertCountingTable(count1, count2);
personDao.insertPerson(person.getPersonId(),
person.getName(), id);
}
}
Когда выполняется строка
int id = personDao.insertCountingTable(count1, count2);
, идентификатор устанавливается на -1, но значение должно быть> = 1, также проверяя базу данных. Я вижу, что строка былауспешно вставлен.