【发布时间】:2014-05-28 20:40:23
【问题描述】:
当我直接在 PostgreSql 以及 Hibernate 中的 HQL 上运行以下 sql 时,它是有效的:
sql = "update Address set city = upper(city)"
HQL: session.createQuery(sql).executeUpdate()
但是,当我尝试使用 sql 函数 left(String, number) 如下:
sql = "update Address set city = left(city,7)"
直接在 PostgreSql 上运行正常,但是在 Hibernate 中抛出这个异常:
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: left near line 1
我将方言正确设置为:
props.put("hibernate.dialect", PostgreSQLDialect.class.getName());
如何让 HQL 的行为与 SQL 相同?
为什么“上”功能有效,“左”功能无效?
【问题讨论】:
-
我没有看到这与 sql-server(以及它的标签)有什么关系(但当然我可能会遗漏一些东西)
标签: java sql sql-server hibernate postgresql