【问题标题】:JPA Eclipselink query parse problem in windows 7Windows 7中的JPA Eclipselink查询解析问题
【发布时间】:2019-02-20 07:51:05
【问题描述】:

我有一个使用 eclipselink v2.7.3 的独立 Spring Boot Web 服务。我在课堂上的 NamedQuery 中有查询。

 SELECT m , o.iduserinsert.id as iduserinsert FROM Mytable
 m, Order1 o  WHERE o.idmytable=m and (o.id is null or o.idorderstatus.id 
in (1,3,4))  and m.iddepartment = :iddepartment and m.isactive = :isActive 
 and m.idtablestatus.id < 5 and (m.idparent is null or m.idparent < 0) 
order by m.id desc

在windows server 2008、windows10这个web服务运行良好。但是,当我在 windows7 上运行它时,由于以下错误而崩溃并关闭:

SQL 查询包含格式错误的结尾

同一段代码如何在一个系统上运行而不在另一个系统上运行?

[更新]

原因是 Windows 操作系统的界面语言。那是土耳其语。 JPA 解析器在土耳其语中出现故障。我安装了英文语言包,避免了这个问题。但是如果不更改操作系统的界面语言,我仍然找不到真正的解决方案

【问题讨论】:

  • m和o之间的联系是什么? o.idmytable 是指向 m.id 的外键吗?实体中是否指定了此映射?
  • 是的。 o.idmytable 是 Mytable 实体。 Order1和MyTable通过joincolumn映射,o.idmytable=m和o.idmytable.id=m.id一样,没有区别
  • 尝试将此作为命名查询以查看它是否会更改结果: SELECT m , o.iduserinsert.id as iduserinsert FROM Order1 o JOIN o.idmytable m WHERE (o.id is null or o. idorderstatus.id in (1,3,4)) and m.iddepartment = :iddepartment and m.isactive = :isActive and m.idtablestatus.id
  • 感谢@mahieus,原因是 Windows 操作系统的语言。 JPA 解析器在土耳其语中出现故障。我安装了英文语言包,解决了问题
  • 没问题很高兴我能帮上忙。如果您找不到问题,请始终尝试从系统中获取更多信息。

标签: java spring-boot jpa eclipselink


【解决方案1】:

尝试将此作为命名查询,看看它是否会改变结果:

SELECT m , o.iduserinsert.id as iduserinsert FROM Order1 o JOIN o.idmytable m WHERE (o.id is null or o.idorderstatus.id in (1,3,4)) and m.iddepartment = :iddepartment and m.isactive = :isActive and m.idtablestatus.id < 5 and (m.idparent is null or m.idparent < 0) order by m.id desc

这可能会让您更清楚地了解发生了什么。

【讨论】:

    猜你喜欢
    • 2016-08-21
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多