public   UserRole   getUserRoleByUserIdAndRoleId(String   userId,String   roleId){
Session   session   =   sessionFactory.openSession();
Transaction   tx   =   null;
UserRole   userRole   =   null;
try{
    tx   =   session.beginTransaction();
    Query   query   =   session.createQuery( "from   UserRole   ur   where   ur.userId:=userId   "   +
"and   ur.roleId:=roleId ");
    query.setString( "userId ",   userId);
    query.setString( "roleId ",   roleId);
                    userRole   =   (UserRole)query.uniqueResult();
}catch(Exception   e){
if(tx   !=   null){
tx.rollback();
}
}finally{
session.close();
}
return   userRole;
}没看见你事务的提交,是不是漏了提交事务呢。
应该不关参数绑定的事情,你可以先不用绑定的方法查询看看行不行。

解决方案 »

  1.   

    提交事务也不行,写成“from UserRole ur where ur.userId='"+userId+"'")就可以
      

  2.   

       你格式寫錯了  是 = :userId     不是 :=userId
      

  3.   

    楼上也错了,是" =:userId ",其中的"="和":"这两个要连在一起写,并且最好后面的占位变量不要用跟前面写的重名,这样不容易理解,可以尝试改变大小写!
    早日结贴!