【发布时间】: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