HQL条件查询(新手初学hibernate请求指教)

第一种:Query Query2=session.createQuery("from studentys where sname like '%sf%' ");

第二中:Query Query2=session.createQuery("from studentys where sname like ? ");

Query2.setParameter(0,"%sf%");

Query2.setString(0, "%sf%");
为何我的第一种方式没问题 第二种就报错了 setParameter和setString都试了

请各位大神给解答一下

``` Query Query3=session.createQuery("from studentys where sname like ?");
Query3.setParameter(0,"%sf%"); //biernate参数是从0开始的
//Query2.setParameter(0, "%sf%");

    List list3=Query3.list();
    for(Object o:list3){
        System.out.println(o);
    }
    tx.commit();



https://gitee.com/00fly/java-code-frame/blob/master/springmvc-hbn/src/test/java/com/fly/test/QueryTest.java