你的是SQL语句形式吧,HQL不是那样的,把    on    去掉看看

解决方案 »

  1.   

    把on去了,改成:
    select funds.numberedAccount, funds.amountOfMoney,
    funds.accountOpenTime, 
    cust.customerId,cust.name 
    from FundsAccount as funds 
    join Customers as cust
    where funds.numberedAccount='2006'
    出错:
    Exception in thread "main" org.hibernate.hql.ast.QuerySyntaxException: Path expected for join! [select funds.numberedAccount,funds.amountOfMoney,funds.accountOpenTime,cust.customerId,cust.name from com.hibernate.pojo.FundsAccount as funds left join Customers as cust where funds.numberedAccount= '2006']
    at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)
    at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:225)
    at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:158)
    at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109)
    at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75)
    at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
    at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
    at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
    at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
    at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
    at com.dao.fundAccountAdmin.FundAccountAdminDao.queryFundAccountByNumberedAccount(FundAccountAdminDao.java:135)
    at com.dao.fundAccountAdmin.FundAccountAdminDao.main(FundAccountAdminDao.java:230)
    Caused by:  Path expected for join!
    at org.hibernate.hql.ast.HqlSqlWalker.createFromJoinElement(HqlSqlWalker.java:307)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.joinElement(HqlSqlBaseWalker.java:3268)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3060)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2938)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
    at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:218)
    ... 10 more
      

  2.   

    select funds.numberedAccount, funds.amountOfMoney,
    funds.accountOpenTime, 
    cust.customerId,cust.name 
    from FundsAccount as funds 
    join funds.customers as cust
    where funds.numberedAccount='2006'
    看看
      

  3.   

    可能查询可以,我的是两个表里得到数据,但不知道怎么来得到查询的值,我是这样写的:
    session=HibernateSessionFactory.getSession();
    Query q=session.createQuery("select funds.numberedAccount,funds.amountOfMoney,funds.accountOpenTime,cust.customerId,cust.name from FundsAccount as funds join funds.customers as cust where funds.numberedAccount= '"+numberedAccount+"'");
    List li=q.list();
    Iterator it=li.iterator();
    Object[] bean =(Object[])it.next();
    String numberedAc=(String)bean[0];
    Double prise=(Double)bean[1];
    Date dateTime=(Date)bean[2];
    Integer id=(Integer)bean[3];
    String name=(String)bean[4];
    list.add(numberedAc);
    list.add(prise);
    list.add(dateTime);
    list.add(id);
    list.add(name);
    报错:Exception in thread "main" java.lang.NullPointerException
    at com.dao.fundAccountAdmin.FundAccountAdminDao.queryFundAccountByNumberedAccount(FundAccountAdminDao.java:147)
    at com.dao.fundAccountAdmin.FundAccountAdminDao.main(FundAccountAdminDao.java:246)
      

  4.   

    问题解决:
    list没有new,我在下面写上list=new Arraylist();后正确得到结果.
    谢谢!!
    session=HibernateSessionFactory.getSession();
    Query q=session.createQuery("select funds.numberedAccount,funds.amountOfMoney,funds.accountOpenTime,cust.customerId,cust.name from FundsAccount as funds join funds.customers as cust where funds.numberedAccount= '"+numberedAccount+"'");
    List li=q.list();
    Iterator it=li.iterator();
    Object[] bean =(Object[])it.next();
    String numberedAc=(String)bean[0];
    Double prise=(Double)bean[1];
    Date dateTime=(Date)bean[2];
    Integer id=(Integer)bean[3];
    String name=(String)bean[4];
    list.add(numberedAc);
    list.add(prise);
    list.add(dateTime);
    list.add(id);
    list.add(name);