Rumah  >  Artikel  >  Pertanyaan mendapat ralat sintaks walaupun pertanyaan memang betul

Pertanyaan mendapat ralat sintaks walaupun pertanyaan memang betul

PHPz
PHPzke hadapan
2024-02-22 13:16:13846semak imbas

Editor PHP Youzi akan membantu anda menyelesaikan masalah biasa dalam pengaturcaraan Java! Kadangkala walaupun pernyataan pertanyaan adalah betul, mungkin terdapat ralat sintaks, yang mengelirukan ramai pemula. Artikel ini akan membincangkan isu ini untuk membantu pembaca memahami secara mendalam ralat biasa dalam pengaturcaraan Java dan menyelesaikan cabaran ralat tatabahasa dalam pernyataan pertanyaan.

Kandungan soalan

Saya merancang untuk menggunakan fail telinga saya pada ikan kaca, tetapi apabila saya cuba menggunakan telinga saya mendapat:

Ralat sintaks berlaku apabila

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 异常描述:解析查询

Pertanyaan ialah pertanyaan bernama, saya juga mengujinya menggunakan eclipselink dalam projek lain yang tidak menggunakan glassfish (ia tidak digunakan pada pelayan aplikasi) dan ia berfungsi dengan baik

Saya tidak dapat mengetahui apa yang boleh berlaku, jika pertanyaan berjalan lancar menggunakannya secara langsung, mengapa ia tidak berfungsi apabila digunakan pada ikan kaca?

Ini adalah pertanyaan bernama

@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";

Saya telah menggunakan pertanyaan ini dalam aplikasi java (projek java mudah) dan ia berfungsi dengan baik; Pangkalan data ialah mssql

Penyelesaian

Masalahnya berkaitan dengan versi glassfish, dalam versi ini

Ia berfungsi dengan baik, dan dalam yang ini:

tidak berfungsi, dengan kata lain, versi sumber terbuka tidak boleh melakukan pertanyaan yang sangat kompleks (seperti dalam contoh

);

Saya tahu mungkin tiada orang lain di planet ini yang menghadapi masalah yang saya hadapi, dan teknologinya sudah lama; tetapi saya tidak faham mengapa sesiapa mengambil dua sen saya! !

Atas ialah kandungan terperinci Pertanyaan mendapat ralat sintaks walaupun pertanyaan memang betul. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam