Mysql Hibernate连接错误语法异常
在我的项目(JavaStruts2,hibernate)中,我想使用Joinbetween 2表进行选择Mysql Hibernate连接错误语法异常,mysql,sql,hibernate,select,join,Mysql,Sql,Hibernate,Select,Join,在我的项目(JavaStruts2,hibernate)中,我想使用Joinbetween 2表进行选择 Class User { private int userId; private String userName; private String dateOfBirth; } Class Bill { private int billId; private String dateOfBill; private Double moneyOfBill; privat
Class User {
private int userId;
private String userName;
private String dateOfBirth;
}
Class Bill {
private int billId;
private String dateOfBill;
private Double moneyOfBill;
private User user;
}
当我直接在localhost数据库中尝试通过sql时,它是正常的
Select * From user u JOIN bill b ON (b.userId=u.userId) Group by b.userId Order by Sum(b.moneyOfBill) asc;
但这是通过hibernate hql在我的程序中出现的错误
From User U JOIN Bill B ON (B.user.userId=U.userId) Group by B.user.userId Order by Sum(B.moneyOfBill) ASC;
eclipse控制台中的错误:
位于org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54)
位于org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47)
位于org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:82)
位于org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:281)
位于org.hibernate.hql.ast.QueryTranslatorImpl.docomfile(QueryTranslatorImpl.java:180)
位于org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:134)
在org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:101)
在org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:80)
位于org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
位于org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
位于org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
位于org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1650)
请帮忙。谢谢大家! 试试这个:
SELECT U.userId, U.userName, U.dateOfBirth
FROM Bill B
JOIN USER U
GROUP BY U.userId, U.userName, U.dateOfBirth
ORDER BY SUM(B.moneyOfBill) ASC;
感谢Saharsh Shah,但我只想从用户表中获取用户数据,而不是账单数据。我发现解决方案就在这里。此解决方案解决了我的问题: