我正在 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/