gpt4 book ai didi

java - Hibernate 列名称中的特殊字符

转载 作者:搜寻专家 更新时间:2023-11-01 02:06:36 27 4
gpt4 key购买 nike

我有一个表,其中有一列名为 @id我想执行这个查询:

select DISTINCT "@id" from "osm_art_center"

在 Java( hibernate )中。

问题是 Hibrernate 无法理解 @id 并返回 id 列不存在的错误。

编辑

导致错误的代码:

String columnName="@id";
String tableName="osm_art_center";
ResultSet polygonSearch;
polygonSearch = st.executeQuery("select DISTINCT "+columnName+" from "+tableName);

抛出的错误:

SQL Error: org.postgresql.util.PSQLException: ERROR: column "id" does not exist

最佳答案

尝试引用列名:

String sql ="select DISTINCT \"@id\" from osm_art_center;
ResultSet polygonSearch = st.executeQuery(sql);

Java 语言不会去除或更改字符串中的“@”字符。但是,您使用的 JDBC 驱动程序的行为恰好与您的 PostgreSQL 命令解释器的行为完全有可能不同。

无论哪种方式,请尝试转义特殊字符。

关于java - Hibernate 列名称中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31361948/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com