编写一个满足要求的SQL语句,调用Hibernate提供的executeQuery方法,返回List,再从List中逐条取出即可。以前做过,不过好久没用了,不知道说得对不对,关注……

解决方案 »

  1.   

    sample hql:
    SELECT ig FROM InfoGoods AS ig, InfoPublish AS ip, PublishGoods AS pg
    WHERE ig.gId=pg.id.gId AND ip.pId=pg.id.pId 
    AND ip.pName LIKE '%出版商的名字(或名字的一部分)%'
      

  2.   

    List cats = session.createQuery(
        "from InfoGoods as goods
     where goods.birthdate < ?")
        .setDate(0, date)
        .list();
      

  3.   

    sorry, 刚才那贴发错了List goods = session.createQuery(
        "from InfoGoods as goods where goods.gId in " +
        "(select pg.gId from PublishGoods as pg where pg.pId in " +
        "(select publish.pId from InfoPublish as publish where publish.pName like ?))")
        .setString(0, "%" + input_string + "%")
        .list();
      

  4.   

    如果PublishGoods(gId, pId) 产品和出版商的关联实体 就是只有这两个字段的话,可以配置成多对多
      

  5.   

    感谢各位的热心回答,解决了我的麻烦我试了一下, branky34给的答案比较接近正确我又做了一些修改,终于可以正确运行最后的代码是:"SELECT ig FROM InfoGoods AS ig, InfoPublish AS ip, PublishGoods AS pg " +
    "WHERE ig.gId = pg.id.infoGoods.gId AND ip.pId = pg.id.infoPublish.pId " +
    "AND ip.pName LIKE '" + searchkey + "'";