eclipselink支持来自子句
的子查询但当我使用此查询时
queryString2="SELECT NEW dz.com.naftal.erp.domain.view.MouvementProduitView('VAR',t.cds,SUM(t.mntttc)) " +
"FROM (SELECT DISTINCT m.mouvementProduitViewPK.cds as cds,m.mouvementProduitViewPK.referenceDocument,m.mouvementProduitViewPK.typeDocument " +
"m.mntttc as mntttc FROM MouvementProduitView m WHERE m.mouvementProduitViewPK.cds IN :cdss " +
"AND m.mouvementProduitViewPK.typeDocument IN :typeDocuments " +
"AND m.dateOperation BETWEEN :dateDu AND :dateAu GROUP BY m.mouvementProduitViewPK.cds ORDER BY m.mouvementProduitViewPK.cds) AS t GROUP BY t.cds"
我收到此错误
SEVERE [global]
Local Exception Stack:
Exception [EclipseLink-0] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.JPQLException
Exception Description: Syntax error parsing [SELECT NEW..............
[388, 388] The right parenthesis is missing from the sub-expression.
[389, 389] An identification variable must be provided for a range variable declaration.
[426, 447] The query contains a malformed ending.
是否有任何伙伴知道from子句中的子查询是否真的有效,如果没有其他方法可以执行此操作,除非使用本机查询。
PS:我正在使用eclipselink 2.5.0.v20130507
答案 0 :(得分:2)
您的错误很简单:您的查询格式不正确,缺少选择中的逗号...您有:
SELECT DISTINCT
m.mouvementProduitViewPK.cds as cds,
m.mouvementProduitViewPK.referenceDocument,
m.mouvementProduitViewPK.typeDocument //Here is missing the comma
m.mntttc as mntttc
FROM MouvementProduitView m
在第三行和第四行之间缺少逗号,它应该是:
SELECT DISTINCT
m.mouvementProduitViewPK.cds as cds,
m.mouvementProduitViewPK.referenceDocument,
m.mouvementProduitViewPK.typeDocument, //put at the end of this line the comma
m.mntttc as mntttc
FROM MouvementProduitView m
答案 1 :(得分:0)
尝试删除' AS'子查询后的字符串。您提供的文章不使用此结构。