本帖最后由 shouhu5670 于 2011-03-06 12:52:13 编辑

解决方案 »

  1.   

      String hql="from Music music where music.musicUpLoader=?";
    这个改成
      String hql="from Music music where music.musicUpLoader like '%"+musicUpLoader+"%'";
     query.setString(0, musicUpLoader);这个去掉...不过这个搜索会全表查询,不推荐,主要看能不能实现功能
    还有 Query query = session.createQuery(hql);
            query.setString(0, musicUpLoader);
    这个顺序是不是倒了,先搜索,再添加条件,因为这样添加参数我没用过,不知道是不是这样
      

  2.   

    Query query = session.createQuery(hql);
            query.setString(0, musicUpLoader);这两句顺序反了吧?
    除非在query.setString(0, musicUpLoader);里面的musicUpLoader设置成具体值才能查出结果来。。或者 musicUpLoader 这个参数传过来的时候就是空的?断点调试了吗?query.setString(0, musicUpLoader);
    改成 query.setParameter(0, musicUpLoader);
      

  3.   

    不行。。还是跟原来一样的结果不过还是谢谢啦。。(>`<)
      

  4.   

    HQL 执行的时候会打印出来实际的SQL语句
    楼主先DEBUG 跟踪看你查询参数是否有问题
    实在不行就不要用占位符 直接拼接HQL参数
      

  5.   

    Java   还真的复杂啊   一看到  头都晕了
      

  6.   


    musicUpLoader 传过来是空的。。但是数据库里有值,
      

  7.   


    打印出的sql语句也没问题。放数据库可以查到的。。但是在这个里面就没查到东西。。
      

  8.   

    musicUpLoader是怎么传过来的 注意musicUpLoader.trim()
      

  9.   

    [Quote=引用 8 楼 xiaoye2892 的回复:]
    引用 6 楼 shouhu5670 的回复:
    引用 2 楼 jerry_bj 的回复:
    Query query = session.createQuery(hql);
    query.setString(0, musicUpLoader);这两句顺序反了吧?
    除非在query.setString(0, musicUpLoader);里面的musicUpLoader设置成具体值才能查出结……
    [/Quote
    貌似问题的原因不是这段,你要好好看下public List<Music> selMusicup(String musicUpLoader) {
    调用这个函数的地方,传入的参数musicUpLoader这个值
      

  10.   

    除非在query.setString(0, musicUpLoader);里面的musicUpLoader设置成具体值才能查出结果来。。肯定是传具体的值才会查出来得,如果希望当传空的时候也查询出来结果,只需判断下查询条件是否为空
    我给你改写了一下,看是否合你心意:
    //我的上传
        @SuppressWarnings("unchecked")
        public List<Music> selMusicup(String musicUpLoader) {
            Session session=getSession();
            Query query=null;
            String hql="from Music music where 1=1";
            if(musicUpLoader!=null&&!musicUpLoader.trim().equals("")){
            hql+="and music.musicUpLoader=?";
            query = session.createQuery(hql);
            query.setString(0, musicUpLoader);
            }else{
              query = session.createQuery(hql);
            }
            return query.list();
        }
        }
      

  11.   

    query.setParameter(0, musicUpLoader);
      

  12.   

    感谢诸位刚找老师远程搞定了上面那段代码没问题。。是我页面上传的是。对象点属性、、、music.musicUpLoader....到action上我直接就musicUpLoader了
    我原来的。
    musicList=musicService.selMusicup(musicUpLoader);改正确的。
    musicList=musicService.selMusicup(music.getMusicUpLoader());唉小弟培训班学java学了半年。。毕业设计要做这个。一个不懂得要卡好几天。。诸位辛苦了、、、感谢感谢感谢。。再三感谢。
    哦对了要结贴不??