本帖最后由 Artognou 于 2011-05-19 10:56:16 编辑

解决方案 »

  1.   

    from Goods a, GoodsAndImage b, Image c where a.goodsid = b.goodsid and b.imageid=c.imageid
      

  2.   


    2011-5-19 3:15:28 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet action threw exception
    line 1:144: unexpected token: a报这个错啊 我的HQL语句是 
    hqls="from Goodsinfo a, Goodsandimageinfos b,Imageinfo c where a.goodsid = b.goodsid and b.imageid=c.imageid a.goodsid="+goodsId;
      

  3.   

    2011-5-19 3:20:47 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet action threw exception
     Goodsandimageinfos is not mapped.这个要怎么弄啊...
      

  4.   

    <set name="goodsandimageinfos" table="goodsandimageinfo">
                <key>
                    <column name="GOODSID" />
                </key>
                <many-to-many class="com.ori.model.goods.Imageinfo" column="IMAGEID"/>
            </set>这是goodsinfo.hbm.xml里面的配置 有什么问题么..
      

  5.   

    2011-5-19 3:23:08 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet action threw exception
     goodsandimageinfos is not mapped.
    at org.hibernate.hql.ast.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:85)
    at org.hibernate.hql.ast.FromElementFactory.addFromElement(FromElementFactory.java:77)
    at org.hibernate.hql.ast.FromClause.addFromElement(FromClause.java:67)
    at org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:217)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:2830)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2719)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:513)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:371)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:201)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:151)
    at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:189)
    at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:130)
    at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:83)
    at org.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:427)
    at org.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:884)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:834)
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
    at org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:849)
    at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
    at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:840)
    at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:832)
    at com.ori.dao.goods.GoodsinfoDAO.getImage(GoodsinfoDAO.java:189)
    at com.ori.biz.goods.GoodsinfoService.getGoodsInfoById(GoodsinfoService.java:42)
    at com.ori.web.goodsAction.GoodsAction.getGoodsById(GoodsAction.java:58)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:619)
      

  6.   

    你在hibernate.cfg.xml中都配置好了吗?
      

  7.   

    goodsandimageinfos  你没有设置这个表的配置文件.
      

  8.   


    from Image Image where Image.imageid in (select GoodsAndImage.imageid from GoodsAndImage GoodsAndImage where GoodsAndImage.goodsid = goodsid)不过用in效率不好,不知道有没有别的方法
      

  9.   

    额 是不是要把goodsandimage这张表的配置文件留着?
      

  10.   

    你的 GoodsAndImage表不是删了吗?所以hql语句就不能那么写了,如果楼主在hibernate.cfg.xml配置文件中对Goods和Image两个表添加了关系,那就把你的Goods实体类改一下:在Goods实体类中添加
    private Image image; 然后getter/setter方法,在dao类中写hql语句的时候直接查Goods的信息就可以了。建议楼主再复习一下Hibernate
      

  11.   

    这 还是自己搞定了 原来在实体类里面的Set类型goodsandimageinfo就有IMAGE对象的
    只要配置好了 然后在get就行了 
    用迭代就出来了 谢谢各位