今天做项目  碰到一个问题:现有 Order Ticket Jingdian 三个实体类 ,分别对应 t_order,t_ticket,t_jingdian三张表
类Order里面有ticketId
类Ticket里面有List<Jingdian>
类Jingdian里面有 memo
请问一下,通过 Jingdian里面的 memo 属性来查询订单的HQL语句应该怎么写?
因为Ticket里面没有memo字段属性,还请知道的大神指点一二。 
"from Order o,Ticket t,Attractions a where o.ticketId=t.id and a in elements (t.attractions) and a.memo like ?" ;
上面的写法不对 不知道该怎么写

解决方案 »

  1.   

    select * from Order o  left join o. ticketId left join o. ticketId. Jingdian where o. ticketId. Jingdian.demo like '%?%'不行嘛?o.ticketID分别是你Order bean里面的属性
    Jingdian 是你Ticket的list< Jingdian>的属性名称!
      

  2.   

      whereSql = "from Order o left join o.ticketId left join o.ticketId.attractions where o.ticketId.attractions.memo like ? " ;
    这样写报错 
    >Request processing failed; nested exception is java.lang.NullPointerException</u></p><p><b>description</b> <u>The server encountered an internal error that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
     
      

  3.   

    这不知道你3个对应bean的配置是如何。
    如果HQL有难度,LZ完全可以用sql来解决了。
    hibernate这几个是都支持的了!
      

  4.   

    Hibernate 查询 配置好了,没那么麻烦,没明白楼主表的关系。
    Ticket关联Order  order内外键为ticketId
    Jingdian 是里面的外键是 ticketId 么?
    查询条件是通过Ticket里面的 memo字段 做精确查询么?
      

  5.   


    不是是这样的 Order跟Ticket关联 Ticket跟Jingdian关联  Ticket跟Jingdian是多对多,查询条件是Jingdian里的memo字段,做模糊查询