Die Abfrage erhält einen Syntaxfehler, obwohl die Abfrage tatsächlich korrekt ist
Der PHP-Editor Youzi hilft Ihnen bei der Lösung häufiger Probleme bei der Java-Programmierung! Selbst wenn die Abfrageanweisung korrekt ist, kann es manchmal zu Syntaxfehlern kommen, die viele Anfänger verwirren. In diesem Artikel wird dieses Problem behandelt, um den Lesern ein umfassendes Verständnis häufiger Fehler in der Java-Programmierung zu vermitteln und die Herausforderung grammatikalischer Fehler in Abfrageanweisungen zu lösen.
Frageninhalt
Ich habe vor, meine Ohrfeile auf Glassfish einzusetzen, aber wenn ich versuche, das Ohr einzusetzen, erhalte ich Folgendes:
Bei2023-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 异常描述:解析查询
Die Abfrage ist eine benannte Abfrage, ich habe sie auch mit Eclipselink in einem anderen Projekt ohne Glassfish getestet (sie wurde nicht auf dem Anwendungsserver bereitgestellt) und es hat gut funktioniert
Ich kann nicht herausfinden, was schief gehen könnte. Wenn die Abfrage direkt damit einwandfrei läuft, warum funktioniert sie dann nicht, wenn sie auf Glassfish bereitgestellt wird?
Dies ist eine benannte Abfrage
@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";
Ich habe diese Abfrage in einer Java-Anwendung (einem einfachen Java-Projekt) verwendet und sie funktioniert einwandfrei; Die Datenbank ist mssql
Lösung
Das Problem hängt mit der Glassfish-Version zusammen, in dieser Version
Es funktioniert gut, und in diesem Fall:
funktioniert nicht, das heißt, die Open-Source-Version kann keine sehr komplexen Abfragen durchführen (wie die im Beispiel);
Ich weiß, dass es wahrscheinlich niemanden sonst auf dem Planeten gibt, der die Probleme hat, die ich habe, und die Technologie ist sehr alt; aber ich verstehe nicht, warum mir jemand meine zwei Cent weggenommen hat! !Das obige ist der detaillierte Inhalt vonDie Abfrage erhält einen Syntaxfehler, obwohl die Abfrage tatsächlich korrekt ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)
