【问题标题】:Eclipse compile error 'The left parenthesis is missing from the IN expression'Eclipse 编译错误“IN 表达式中缺少左括号”
【发布时间】:2015-05-19 10:15:54
【问题描述】:

我已经在 Eclipse 中编译了我的项目。这是一个带有 JPA 实体的 Java EE 项目。

@NamedQuery 注释中包含IN 子句时,我收到此错误。

这可能是对 Java EE 库的错误依赖吗?

【问题讨论】:

  • 不确定,但你需要一个':'吗?
  • 哪个 Eclipse 版本? Project Facets 属性中有哪些版本?有与此相关的错误报告,但它们相对较旧。您的 Eclipse 可能只需要升级。

标签: eclipse jakarta-ee jpa


【解决方案1】:

解析器不理解:name 语法。相反,它需要(:name1, :name2, ...)

你可以试着忽略这个问题;但我认为当 JDBC 替换参数时,结果查询会失败,因为 JDBC 在替换参数时不支持列表(参见https://stackoverflow.com/questions/13254133/jdbc-prepared-statement-how-to-set-a-list

【讨论】:

  • 这与eclipse版本有关吗?我的同事没有收到此错误。否则它编译和部署正常。
  • 也许吧。在两个 Eclipse 安装中搜索以 org.eclipse.jst 开头的文件并比较版本(文件名中的数字)。
  • 另外检查org.eclipse.jpt 可能也很有趣。您还可以在 Eclipse 的“关于”对话框中比较功能版本,但我发现这很难做到。
  • eclipse 是一个永无止境的配置噩梦
  • 我的解决方案是避开 p2 和市场。相反,我下载了一个全新的安装存档,然后将我们想要在团队中使用的所有扩展都放在 dropins/ 文件夹中。这样,我们就知道我们得到了什么。
【解决方案2】:

这些错误是由 Dali(一个 Eclipse JPA 工具插件)产生的。 Dali JPQL 解析器无法解析连接的字符串。您可以通过首选项禁用 Dali JPQL 解析器:

Window > Preferences > Java Persistence > JPA > Errors/Warnings > Queries & Generators > 无效或不完整的 JPQL 查询

你可以在这里找到更多关于大理的信息:https://eclipse.org/webtools/dali/

【讨论】:

    【解决方案3】:

    这里有同样的问题,我使用的是 eclipse neon JEE 版本和 eclipselink 2.6。我的问题是我的 persistence.xml 具有 JPA 1.0 架构,而我的项目方面配置为 JPA 1.0 版。在纠正两者之后,我的问题就消失了。希望这对某人有所帮助。

    旁注:很久以前的原始bug with Dali was fixed。因此,如果您仍然遇到此问题,则可能是配置有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 2012-12-29
      • 1970-01-01
      • 2023-01-10
      • 1970-01-01
      相关资源
      最近更新 更多