[英]org.postgresql.util.PSQLException: Error: column systementi0_.id does not exist - Hibernate, PostgreSql
[英]org.postgresql.util.PSQLException: ERROR: column "id" does not exist - Java Web Service
我正在開發一個廣泛部署的 Java Web 服務。 它連接到一個 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:錯誤:列“id”不存在
職位:8
這令人困惑,因為我當然有這個專欄。 我根據這個答案添加了轉義字符,但它沒有解決問題。
另請注意,沒有 where 子句的查詢,例如:
conn = postgresVoyateDBConnection();
query = conn.prepareStatement("select id, baseitemid " +
"from xx_activity");
ResultSet rs = query.executeQuery();
完美地工作。
我也試過不使用轉義字符,但它給出了同樣的錯誤。 我還檢查了 pgadmin,列名中沒有尾隨空格,也沒有涉及任何大寫字母(在這種情況下,另一個選擇查詢不應該起作用?)。
如何解決這個問題?
解決了這個問題,問題是缺少空間。 在查詢的第一行之后,需要有一個空格,如下所示:
query = conn.prepareStatement("select id, baseitemid " +
"from xx_activity " +
"where \"id\" = ? ");
編輯: id
不需要轉義字符; 所以最終答案應該是:
query = conn.prepareStatement("select id, baseitemid " +
"from xx_activity " +
"where id = ? ");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.