我有四个表之间查询,下面是我写的HQL语句:
select
A.userNickName,
B.agentRealName,
C.lineName,
D.sequenceId,
D.description,
D.contractLink,
D.createDate,
D.userRealName,
D.status
from
TUser A,
TAgent B,
TLine C,
TComplaint D
WHERE
D.userId = A.sequenceId
AND D.agentId = B.sequenceId
AND D.lineId = C.sequenceId
执行不了,不知道是哪里写的不对
select
A.userNickName,
B.agentRealName,
C.lineName,
D.sequenceId,
D.description,
D.contractLink,
D.createDate,
D.userRealName,
D.status
from
TUser A,
TAgent B,
TLine C,
TComplaint D
WHERE
D.userId = A.sequenceId
AND D.agentId = B.sequenceId
AND D.lineId = C.sequenceId
执行不了,不知道是哪里写的不对
select A from (select A.userNickName,B.agentRealName,C.lineName, D.sequenceId,D.description,D.contractLink,D.createDate,D.userRealName,D.status from TComplaint D left outer join TUser A on D.userId=A.sequenceId left outer join TAgent B D.agentId=B.sequenceId left outer join TLine C D.lineId= C.sequenceId) A
(select A.userNickName,B.agentRealName,C.lineName, D.sequenceId,D.description,D.contractLink,
D.createDate,D.userRealName,D.status
from
TComplaint D left outer join TUser A on D.userId=A.sequenceId
left outer join TAgent B on D.agentId=B.sequenceId
left outer join TLine C on D.lineId= C.sequenceId) A
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: ( near line 1, column 15 [select A from (select A.userNickName,B.agentRealName,C.lineName, D.sequenceId,D.description,D.contractLink,D.createDate,D.userRealName,D.status from jiaoya.nova.com.hbm.TComplaint D left outer join TUser A on D.userId=A.sequenceId left outer join TAgent B on D.agentId=B.sequenceId left outer join TLine C on D.lineId= C.sequenceId) A ]
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54)
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47)
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:82)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:284)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:182)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1651)
at jiaoya.nova.com.dao.impl.page.PageMngImpl.findBySQL(PageMngImpl.java:46)
at jiaoya.nova.com.dao.impl.page.PageMngImpl.findBySQL(PageMngImpl.java:71)
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54)
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47)
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:82)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:284)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:182)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1651)
at jiaoya.nova.com.dao.impl.page.PageMngImpl.findBySQL(PageMngImpl.java:46)
at jiaoya.nova.com.dao.impl.page.PageMngImpl.findBySQL(PageMngImpl.java:71)
走了明天在来看了
这个select A ……好像只能对应实体类,放到这里不合适吧
你写的那个hql是对实体类来做查询的,查询的内容是实体类的属性
希望你不是直接查询的数据库里面的表跟字段
这两个字段为:
A.userNickname,B.agentRealname就这两个属性没写对导致问题哎谢谢各位帮我参考了