Я разрабатываю веб-службу Java, которая развернута в дикой природе. Он подключен к базе данных postgresql. В этой базе данных у меня есть таблица с именем xx_activity. В нем есть столбец с именем id, который также является первичным ключом. Вот запрос, используемый для создания таблицы:
CREATE TABLE xx_activity
(
id serial NOT NULL,
baseitemid integer
);
для подключения к этой таблице я использую следующий код Java:
conn = postgresVoyateDBConnection();
query = conn.prepareStatement("select id, baseitemid" +
"from xx_activity " +
"where \"id\" = ? ");
query.setInt(1, id);
ResultSet rs = query.executeQuery();
Однако, когда я вызываю метод, включающий этот код, я получаю сообщение об ошибке:
org.postgresql.util.PSQLException: ОШИБКА: идентификатор столбца не существует
Позиция: 8
Это сбивает с толку, потому что у меня определенно есть эта колонка. я добавил escape-символы в соответствии с этим ответом, но это не решило проблему.
Также обратите внимание, что запросы без предложения where, например:
conn = postgresVoyateDBConnection();
query = conn.prepareStatement("select id, baseitemid " +
"from xx_activity");
ResultSet rs = query.executeQuery();
работать отлично.
Я также пробовал без использования escape-символов, но выдает ту же ошибку. Я также проверил в pgadmin, и в имени столбца нет пробела в конце, а также нет никаких заглавных букв (в этом случае другой запрос выбора не должен был работать?).
Как это можно исправить?
id
в кавычках? Это не требуется. 09.09.2016