java - 执行 HQL 查询时出现 org.hibernate.queryException 错误

标签 java hibernate db2 hql rank

我正在 HQL 中执行查询,但出现以下错误。我使用DB2作为数据库,

Error: Caused by:  org.hibernate.queryexception: in expected  [hql query]

查询是,

final String qStr = "select distinct a.* from (select attr.* from AttributeModel attr, BOModel bo, BusinessIdentifierModel ident, NameTransferModel name, NameTransferModel name2 WHERE" +
                                    "bo.businessIdentifierId = ident.businessIdentifierId AND" +
                                    "ident.businessIdentifier = :businessIdentifier AND" +
                                    "attr.compAttributeModelKey.boRowNo = bo.compBOModelKey.boRowNo AND" +
                                    "attr.compAttributeModelKey.eventId = bo.compBOModelKey.eventId AND" +
                                    "bo.typeId = name.nameTransferId AND" +
                                    "name.originalName = :className AND" +
                                    "bo.nameId = name2.nameTransferId AND" +
                                    "name2.originalName = :fieldName) a JOIN (SELECT event.eventId, attr2.nameTransferId, attr2.compAttributeModelKey.boRowNo, RANK() OVER (PARTITION BY bo2.businessIdentifierId, attr2.nameTransferId, attr2.compAttributeModelKey.boRowNo ORDER BY event.eventId desc ) rank from EventModel event, BOModel bo2, AttributeModel attr2,BusinessIdentifierModel ident  WHERE" +
                                                                        "event.changeTime <= :time AND" +
                                                                        "bo2.businessIdentifierId = ident.businessIdentifierId AND"+
                                                                        "bo2.compBOModelKey.eventId = event.eventId AND" +
                                                                        "attr2.compAttributeModelKey.eventId = event.eventId AND" +
                                                                        "attr2.compAttributeModelKey.boRowNo = bo2.compBOModelKey.boRowNo AND" +
                                                                        "ident.businessIdentifier = :businessIdentifier) b ON (" +
                                                                        "a.eventId = b.eventId AND" +
                                                                        "a.nameTransferId = b.nameTransferId AND" +
                                                                        "a.boRowNo = b.boRowNo AND" +
                                                                        "RANK = '1')";

请看一下,如果有错误的语法,请提出建议

最佳答案

(第一个)错误实际上在消息中......

Error: Caused by:  org.hibernate.queryexception: **in** expected  [hql query]

预计会有 IN。

我不太明白你的加入。 您在第二个子选择上的 JOIN 应该在 IN 的位置吗?

关于java - 执行 HQL 查询时出现 org.hibernate.queryException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20651703/

相关文章:

java - 如何从默认包中导入类

java - 带有数组的标记存在语法错误

java - Hibernate 模板中的动态表创建

java - Hibernate 主子细节映射

performance - Hibernate 会导致获取不需要的数据吗?

java - 无法使用 CAdES 方法签署 PDF,尽管使用 PAdES 签署成功

java - 从 Android 应用程序中的 protected 目录流式传输视频

jdbc - 如何在 Kafka Connect JDBC Source 连接器中添加显式 WHERE 子句

db2 - 在 DB2 中获取行

加载 DB2 JDBC 驱动程序时出现 java.lang.UnsatisfiedLinkError