hibernate中我查询两张表中的数据,我这样写查询语句,但就是抱错  select   t.name,t.type,s.name   from   Ren   t   inner   join   Type   s   on   t.type=s.id  错误如下:  org.hibernate.hql.ast.QuerySyntaxException:   unexpected   token:   on   near   line   1,   column   64   [select   t.name,t.type,s.name   from   liubi.Ren   t   inner   join   Type   s   on   t.type=s.id] 

解决方案 »

  1.   

    org.hibernate.hql.ast.QuerySyntaxException: unexpected token: on near line 2, column 20 [select s.id from com.gprs.ssh.obj.Poputrackerstatus as s,com.gprs.ssh.obj.Poputerminals as t
    inner join fetch t on s.trackerid = t.id这个是我的错误 ~ 这个是不是需要在映射对象的配置文件配置一个关联那?
      

  2.   

    HQL语句中  表名,字段需要和POJO类一致
      

  3.   

     <!-- 配置 one to many -->
            <set name="terminals" table="TERMINALS" >
             <key column="TRACKERID"/>
             <many-to-many column="ID" class="com.gprs.ssh.obj.terminals"
             unique="true"/>
            </set>我加了这个配置还是没好使~!~
      

  4.   

    hibernate表格之间的联系应该写在配置文件里面。
      

  5.   

    Linux+Oracle+Java 技术群:87923477 欢迎热爱技术的朋友们的参与
      

  6.   

    把后面的别人拿掉试试。报的是QuerySyntaxException错误,应该是语句的语法有问题。
      

  7.   

    <set name="res_ids" table="assign_info_w" cascade="all" lazy="false">
             <key>
             <column name="ddc_proj_no"/>
             </key>
             <element type="java.lang.String" column="res_id"/>
            </set>
    <set name="resource_info_ws" inverse="true" table="assign_info_w" lazy="false" order-by="res_id">
    <key>
    <column name="ddc_proj_no"/>
    </key>
    <many-to-many class="com.rmt.entity.Resource_info_w" column="res_id"/>
    </set>
      

  8.   

    楼主Ren 类里面的type字段是用的一个Type引用还是一个id?如果你用的一个Type类的话 你的条件了里面是不是该些成t.type.id=s.id呢
      

  9.   

    在hibernate中的HQL语句不能直接用inner join 吧
    你最好换成SQL语句查询
      

  10.   

    首先你的查询的必须是配置了的类名。inner join是可以用,但是不推荐。如果实在没解决,建议用另一种思维去试试。不一定要用这种方法。比如先查出来再用到下一个语句里。