首页 > Java > 正文

即使查询确实正确,查询也会出现语法错误

PHPz
发布: 2024-02-22 13:16:13
转载
868 人浏览过

php小编柚子带你解决Java编程中常见问题!有时候即使查询语句正确,也可能出现语法错误的情况,这让很多初学者感到困惑。本文将针对这一问题展开讨论,帮助读者深入理解Java编程中的常见错误,解决查询语句出现语法错误的挑战。

问题内容

我打算在 glassfish 上部署我的耳朵文件,但是当我尝试部署耳朵时,我得到:

2023-11-23t10:46:59.388+0100|严重:调用类 org.glassfish.persistence.jpa.jpadeployer 准备方法时出现异常 2023-11-23t10:46:59.389+0100|严重:调用类时出现异常org.glassfish.javaee.full.deployment.eardeployer 准备方法 2023-11-23t10:46:59.389+0100|严重:准备应用程序时出现异常 2023-11-23t10:46:59.389+0100|严重:异常 [eclipselink- 8025](eclipse 持久性服务 - 2.3.2.v20111125-r10461):org.eclipse.persistence.exceptions.jpqlexception 异常描述:解析查询 时出现语法错误

该查询是一个命名查询,我也在另一个不使用 glassfish 的项目中使用 eclipselink 对其进行了测试(未将其部署在应用程序服务器上)并且运行良好;

我无法弄清楚可能出了什么问题,如果直接使用它查询运行良好,为什么部署在 glassfish 上时它不起作用?

这是命名查询

@Entity
@Table(name = "T_EXE_PROC")
@TableGenerator(name = "ExecuProcGenerator", table = "T_SEQ", pkColumnName = "SEQ_COL", valueColumnName = "SEQ_CONTATOR", pkColumnValue = "EXE_PRO_SEQUE", allocationSize = 10, initialValue = 0)
@NamedQueries({ 

        @NamedQuery(name = "ExeProc.findLastExecProcs", query = "SELECT DISTINCT (e.procedure) FROM ExeProc e WHERE e.cdExecProcs IN ( SELECT DISTINCT (e.cdExecProcs) FROM ExeProc e, ExeStep s where s.ExecProc.cdExecProcs = e.cdExecProcs AND s.stat.cdStation=:cdStation and s.oper.ceLogin=:ceLogin) and e.statusExecProc = :statusExecProc and e.procedure.status = 1 order by e.lastModifiedStepTime DESC"),

        })
public class ExeProc implements Serializable {
    
    private static final long serialVersionUID = 12348979846545312L;
    
    
    public static final String FIND_LAST_EXEC_PROC = "ExeProc.findLastExecProcs";
登录后复制

我已经在 java 应用程序(一个简单的 java 项目)中使用了该查询,并且运行良好; 数据库是mssql

解决方法

问题与glassfish版本有关,在这个版本中

它可以正常工作,而在这个中:

不起作用,换句话说,开源版本无法执行非常复杂的查询(如示例中的查询);

我知道这个星球上可能没有其他人会遇到我遇到的问题,技术非常古老;但我不明白为什么有人拿走了我两分!!

以上是即使查询确实正确,查询也会出现语法错误的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板