La requête obtient une erreur de syntaxe même si la requête est effectivement correcte
L'éditeur PHP Youzi vous aidera à résoudre les problèmes courants de programmation Java ! Parfois, même si l'instruction de requête est correcte, il peut y avoir des erreurs de syntaxe, ce qui déroute de nombreux débutants. Cet article abordera ce problème pour aider les lecteurs à comprendre en profondeur les erreurs courantes dans la programmation Java et à résoudre le défi des erreurs grammaticales dans les instructions de requête.
Contenu de la question
Je prévois de déployer mon fichier d'oreille sur glassfish, mais lorsque j'essaie de déployer ear, j'obtiens :
Une erreur de syntaxe s'est produite lorsque2023-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 异常描述:解析查询
La requête est une requête nommée, je l'ai également testée en utilisant Eclipselink dans un autre projet n'utilisant pas Glassfish (elle n'a pas été déployée sur le serveur d'application) et elle a bien fonctionné
;Je n'arrive pas à comprendre ce qui pourrait mal se passer, si la requête s'exécute correctement en l'utilisant directement, pourquoi ne fonctionne-t-elle pas lorsqu'elle est déployée sur glassfish ?
Il s'agit d'une requête nommée
@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";
J'ai utilisé cette requête dans une application Java (un simple projet Java) et cela fonctionne bien ; La base de données est mssql
Solution
Le problème est lié à la version glassfish, dans cette version
Ça fonctionne bien, et dans celui-ci :
ne fonctionne pas, autrement dit, la version open source ne peut pas effectuer de requêtes très complexes (comme celle de l'exemple
) ;Je sais qu'il n'y a probablement personne d'autre sur la planète qui a les problèmes que je rencontre et que la technologie est très ancienne ; mais je ne comprends pas pourquoi quelqu'un m'a pris mes deux cents ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)
