首頁 >Java >即使查詢確實正確,查詢也會出現語法錯誤

即使查詢確實正確,查詢也會出現語法錯誤

PHPz
PHPz轉載
2024-02-22 13:16:13879瀏覽

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 對其進行了測試(未將其部署在應用程式伺服器上)並且運行良好;

我無法弄清楚可能出了什麼問題,如果直接使用它查詢運作良好,為什麼部署在 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刪除