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中文网其他相关文章!