php小編柚子帶你解決Java程式設計中常見問題!有時候即使查詢語句正確,也可能出現語法錯誤的情況,這讓許多初學者感到困惑。本文將針對此問題展開討論,幫助讀者深入理解Java程式設計中的常見錯誤,並解決查詢語句出現語法錯誤的挑戰。
我打算在 glassfish 上部署我的耳朵文件,但是當我嘗試部署耳朵時,我得到:
2023-11-23t10:46:59.388 0100|嚴重:呼叫類別org.glassfish.persistence.jpa.jpadeployer 準備方法時出現異常2023-11-23t10:46:59.389 0100023-11-23t10:46:59.389 0100023-1100023t10:46:59.389。時出現異常org.glassfish.javaee.full.deployment.eardeployer 準備方法2023-11-23t10:46:59.389 0100|嚴重:準備應用程式時出現異常2023-11-23t10:46:59.389 01005:0105 eclipselink- 8025](eclipse 持久性服務- 2.3.2.v20111125-r10461):org.eclipse.persistence.exceptions.jpqlexception 例外描述:解析查詢
時出現語法錯誤
#該查詢是一個命名查詢,我也在另一個不使用 glassfish 的專案中使用 eclipselink 對其進行了測試(未將其部署在應用程式伺服器上)並且運行良好;
這是命名查詢
@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中文網其他相關文章!