createCriteria.forClass(A.class).add(Restrictions.like("customerId",arg[0].toString()+"%")) 这个怎么老是提示说java.lang.String cannot be cast to java.lang.Integerjava.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer 转换String我试过了 转换成Int我也试过了 不明白它到底要穿什么类型的参数。请问过的指点一下 谢谢。数组肯定是对的没有问题。现在就是不清楚到底要穿什么类型的值。转换String int 我都试了。
java.lang.String cannot be cast to java.lang.Integerjava.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at org.hibernate.type.IntegerType.set(IntegerType.java:41)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:136)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:116)
at org.hibernate.loader.Loader.bindPositionalParameters(Loader.java:1707)
at org.hibernate.loader.Loader.bindParameterValues(Loader.java:1678)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1563)
at org.hibernate.loader.Loader.doQuery(Loader.java:673)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at org.springframework.orm.hibernate3.HibernateTemplate$36.doInHibernate(HibernateTemplate.java:1065)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.findByCriteria(HibernateTemplate.java:1055)
at org.springframework.orm.hibernate3.HibernateTemplate.findByCriteria(HibernateTemplate.java:1048)这是错误信息 我看网上都是这么写的 就拿过来自己写了一下 就不行,总说那个参数类型转换有问题。
public List<Object> findSearch(Class c,String...args)
throws RuntimeException {
/**取出方法中的查询条件*/
String arg[]=new String[7];
int i=0;
for(String s:args){
arg[i++]=s;
}
return this.getHibernateTemplate().findByCriteria(DetachedCriteria.forClass(c).add(Restrictions.like("customerId",arg[0].toString()+"%")));
}
这是方法的完整代码
customerId 是 类 A里面的属性,属性是什么类型就传什么类型。
return this.getHibernateTemplate().findByCriteria(DetachedCriteria.forClass(c).add(Restrictions.sqlRestriction("customerId like (?)",arg[0].toString()+"%", Hibernate.STRING)));