Hibernate 抛出一个预期的 OPEN,发现 '+'

2024-04-26

下面是我的 hql:

update User set count = count + ?2 where id = ?1

并且有以下异常详细信息:

org.hibernate.hql.internal.ast.QuerySyntaxException: expecting OPEN, found '+' near line 1, column 71 [update com.yitaosoft.edm.common.persist.entity.User set count = count + ? where id = ?]
    at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54)
    at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47)
    at org.hibernate.hql.internal.ast.ErrorCounter.throwQueryException(ErrorCounter.java:79)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:278)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:182)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:138)

我想更新用户集 count = count + xx,其中 id = xx。但出现语法错误。为什么 ? hql不支持吗?如何解决这个问题?


问题是字段名计数;它是一个保留字,应该被引用。
Expected OPEN意味着 HQL 解析器正在等待count(<expression>)SQL 表达式与非count = ...。 唯一的解决办法就是别名User并将点分字段名称强制为:

update User u set u.count = (u.count + ?) where id = ?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hibernate 抛出一个预期的 OPEN,发现 '+' 的相关文章

  • 知道 akka actor 何时完成

    有几个人和我一起从事一个项目 一直在试图找出解决这个问题的最佳方法 看起来这应该是经常需要的标准东西 但由于某种原因我们似乎无法得到正确的答案 如果我有一些工作要做 并且我向路由器抛出一堆消息 我如何知道所有工作何时完成 例如 如果我们正在
  • GSON:如何在保持循环引用的同时防止 StackOverflowError?

    我有一个带有循环引用的结构 出于调试目的 我想转储它 基本上任何格式都可以 但我选择了JSON 由于它可以是任何类 所以我选择了不需要 JAXB 注释的 GSON 但是 GSON 会遇到循环引用并递归直到StackOverflowError
  • 从 Hibernate 生成 SQL 脚本

    我正在为我的 Java Swing 应用程序使用 Hibernate 4 3 5 Final 并且我做了很多工作UDPATE INSERT and DELETE与它 在 HQL 中或与Criteria 现在 我想做的是导出对数据库所做的所有
  • Hibernate 和 Spring - 具有从同一父级继承的多个成员的实体会导致 JDBCException、@Transactional 怪异

    这是重写我的另一个问题 https stackoverflow com questions 7800054 spring mvc app hibernate genericjdbcexception 我有一个 Spring WebMVC 应
  • 使用矩阵参数创建 GET 请求

    我将使用的网络服务需要矩阵参数 http tester com v1 customers lastname Jackson firstname Tim bookingreference 7Y9UIY 而不是通常的 http tester c
  • 禁用特定的 ServletContextListener 以防止在 tomcat 上启动

    我的项目正在使用spring boot with webflux tomcat 我有一个内部库类 它是ServletContextListener WebListener public class DevIoServletContextLi
  • C# 到 Java:Base64String、MemoryStream、GZipStream

    我有一个在 NET 中压缩的 Base64 字符串 我想将其转换回 Java 中的字符串 我正在寻找一些与 C 语法等效的 Java 语法 特别是 Convert FromBase64String 内存流 压缩流 这是我想要转换的方法 pu
  • 何时使用环境变量与系统属性?

    我想知道以下哪种方法是首选方法 我们可以将事情设置为APP HOME path to file export in profile或类似的东西 并将其访问为System getenv APP HOME 或者 也可以使用属性作为 DAPP H
  • Checkstyle 规则防止调用某些方法和构造函数

    是否可以使用 Checkstyle 来禁止使用某些使用系统相关默认值 区域设置 字符集等 的构造函数或方法 我更喜欢强制执行一项政策 程序员应该明确了解系统相关的值 所以我认为以下物品是危险的 all the constructors of
  • Java - Servlet 的默认 contentType

    在servlet中 通常我们会指定一个contentType 然后我们就可以打印出html代码了 response setContentType text html PrintWriter out response getWriter 如果
  • 动态元素 ID 到 setId(int) - Android

    我看到了语法定义setId int and findViewByID int 但我们如何使用findViewById R id row1 我尝试使用这个 Object1 setId Integer parseInt repeat 它没有显示
  • 更改单击后退按钮上的 BottomNavigationView 图标

    在我的布局的底部有一个底部导航视图与三个片段 如果我单击后退按钮 片段将切换 但底部图标不会切换 我该如何修复它 addToBackStack 有效 也许您有一些关于美化代码的建议 在活动或片段中添加片段标签是一个好的做法吗 public
  • antisamy 解析器强制关闭标签

    我使用 Antisamy 来验证 HTML 我的政策允许 iframe 例如 YouTube 视频 问题是 如果标签为空 像这样 清洗后会是这样的 但它应该有正常的结束标签 这会破坏之后页面上的所有内容 我已经将指令设置为使用大部分 HTM
  • Java俄罗斯方块旋转

    我知道这个问题已经被问了很多 但我想知道如何旋转俄罗斯方块 我已经做了一个又长又糟糕的解决方案 大约 170 行代码 但应该有更简单的方法来做到这一点 我的俄罗斯方块由 4 个块组成 它们都知道它们在矩阵中的位置 行和列 Matrix本身是
  • Selenium 2:中断页面加载

    我在使用 FirefoxDriver 使用 Selenium 2 0b3 Java API 单击按钮时遇到问题 单击该按钮会将表单发送到网络服务器 然后浏览器会因表单提交而进入新页面 当使用 element click 单击某个元素时 se
  • 在其抽象超类中使用子类的泛型类型?

    在我的代码中有以下抽象超类 public abstract class AbstractClass
  • 导入数据期间解析日期格式的最佳方法

    我创建了在数据导入 400 K 记录 期间解析视图不同日期格式的方法 我的方法捕获 ParseException 并尝试在不同时使用下一种格式解析日期 问题 在数据导入期间设置正确的日期格式是更好的方法 更快 吗 private stati
  • 带有 Spock Stub 的泛型

    我无法为泛型类编译 Spock 存根 构造函数的签名如下 SomeClass SerSup
  • 当从搜索表单动态构建 WHERE 子句时,如何防止 SQL 注入?

    我知道在 Java 中保护 SQL 查询免受 SQL 注入的唯一真正正确的方法是使用准备好的语句 然而 这样的语句要求基本结构 选择的属性 连接的表 WHERE条件的结构 不会改变 我这里有一个 JSP 应用程序 其中包含一个带有大约十几个
  • 遍历多行字符串

    我得到一些数据 def data some useless text n even more n finally interesting text 我怎样才能得到其中 有趣的部分 所以基本上所有行都不是以 开头的 Groovy 的一种选择是

随机推荐