Hibernate sql错误:无法将java.lang.String转换为java.lang.Integer

Hibernate sql错误:无法将java.lang.String转换为java.lang.Integer,java,hibernate,Java,Hibernate,我改变了HibernateSQL,遇到了问题。 我想这是因为ids是字符串。 我怎样才能解决这个问题 java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer at org.hibernate.type.IntegerType.set(IntegerType.java:64) at org.hibernate.type.NullableType.nullSafeSet(Nu

我改变了HibernateSQL,遇到了问题。 我想这是因为
ids
是字符串。
我怎样才能解决这个问题

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
    at org.hibernate.type.IntegerType.set(IntegerType.java:64)
    at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:156)
    at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:138)
    at org.hibernate.param.PositionalParameterSpecification.bind(PositionalParameterSpecification.java:68)
    at org.hibernate.loader.hql.QueryLoader.bindParameterValues(QueryLoader.java:567)
    at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1612)
    at org.hibernate.loader.Loader.doQuery(Loader.java:717)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
    at org.hibernate.loader.Loader.doList(Loader.java:2294)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2172)
    at org.hibernate.loader.Loader.list(Loader.java:2167)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:448)...
这是我的密码:

public List getUser(int leader, List<Member> members) {
    String ids = String.valueOf(leader);
    if (GeneralUtil.hasValue(members)) {
        for (Member member : members) {
            ids += "," + member.getUserId(); //1,2,3,4  
        }
    }
    try {
        // Old method works well:
        // StringBuffer qryStr = new StringBuffer(
        //      "from User u where u.userId in (" + ids + ")"); 
        // return this.getHibernateTemplate().find(qryStr.toString());  

        StringBuffer qryStr = new StringBuffer("from User u where u.userId in (?)");    
        return this.getHibernateTemplate().find(qryStr.toString(), new Object[] { ids });   
    } catch (DataAccessException e) {
        e.printStackTrace();
    }
    return null;
}
公共列表getUser(int leader,列表成员){
字符串ID=String.valueOf(leader);
if(GeneralUtil.hasValue(成员)){
代表(成员:成员){
ids+=”,“+member.getUserId();//1,2,3,4
}
}
试一试{
//旧方法很有效:
//StringBuffer qryStr=新的StringBuffer(
//“来自用户u,其中u.userId位于(“+ids+”);
//返回这个.getHibernateTemplate().find(qryStr.toString());
StringBuffer qryStr=新的StringBuffer(“来自用户u,其中u.userId位于(?));
返回这个.getHibernateTemplate().find(qryStr.toString(),新对象[]{ids});
}捕获(数据访问异常){
e、 printStackTrace();
}
返回null;
}

那么
整数
数组呢

Integer[] ids = new Integer[members.size()+1];
ids[0] = leader;
for (int i = 0; i < members.size(); i++) {
   ids[i+1] = member.getUserId();
}
Integer[]ids=新整数[members.size()+1];
ids[0]=leader;
对于(int i=0;i
但我仍然需要增加一名
领导