2014-11-26 3 views
1

В моем проекте (java struts 2, hibernate), я хочу выбрать соединение между двумя таблицами.Hibernate JOIN ошибка синтаксиса ошибки

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; 
} 

Это нормально, когда я попытался с помощью SQL в LOCALHOST БД непосредственно

Select * From user u JOIN bill b ON (b.userId=u.userId) Group by b.userId Order by Sum(b.moneyOfBill) asc; 

Но это ошибка в моей программе по гибернации 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:

at org.hibernate.hql.ast.QuerySyntaxExce ption.convert (QuerySyntaxException.java:54) at org.hibernate.hql.ast.QuerySyntaxException.convert (QuerySyntaxException.java:47) at org.hibernate.hql.ast.ErrorCounter.throwQueryException (ErrorCounter.java:82) на org.hibernate.hql.ast.QueryTranslatorImpl.parse (QueryTranslatorImpl.java:281) в org.hibernate.hql.ast.QueryTranslatorImpl.doCompile (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) at org.hibernate.impl.Abstra ctSessionImpl.getHQLQueryPlan (AbstractSessionImpl.java:156) на org.hibernate.impl.AbstractSessionImpl.createQuery (AbstractSessionImpl.java:135) на org.hibernate.impl.SessionImpl.createQuery (SessionImpl.java:1650)

Пожалуйста, помогите. Спасибо!

+0

Это решение устраняет мою проблему: http://stackoverflow.com/questions/16354705/hql-join-path-expected-for-join-hibernate – Bentley

ответ

0

Попробуйте это:

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; 
+0

Спасибо Saharsh шаха, но Я просто хочу получить данные пользователя из таблицы пользователя, а не данные счета. – Bentley

+0

Я нашел решение здесь http://stackoverflow.com/questions/16354705/hql-join-path-expected-for-join-hibernate. – Bentley

Смежные вопросы