java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long
Query query = getSession().createQuery("select e.provinceid from Province e where e.sid=?");
query.setParameter(0, pid);
String father =(String)query.uniqueResult();
System.out.println(father);
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long Query query = getSession().createQuery("select e.provinceid from Province e where e.sid=?"); query.setParameter(0, pid); String father =(String)query.uniqueResult(); Syst
就是这个问题 解决了
public String findProvinceFather(String sid) {
long l = Long.parseLong(sid);
Query query = getSession().createQuery("select e.provinceid from Province e where e.sid=?");
query.setParameter(0, l);
query.uniqueResult();
}
ok
[/quote]
楼上的代码很粗糙,这里是会出问题的,判空都没进行
不行啊[/quote]
Number num = (Number) query.uniqueResult();
int ret = num.intValue();[/quote]
嗯还是不行 query.setParameter(0, pid);我觉得是这个pid我传入的是一个字符串 是不这里的问题啊[/quote]
就是这个问题 解决了
public String findProvinceFather(String sid) {
long l = Long.parseLong(sid);
Query query = getSession().createQuery("select e.provinceid from Province e where e.sid=?");
query.setParameter(0, l);
query.uniqueResult();
}
ok
不行啊[/quote]
Number num = (Number) query.uniqueResult();
int ret = num.intValue();[/quote]
嗯还是不行 query.setParameter(0, pid);我觉得是这个pid我传入的是一个字符串 是不这里的问题啊
首先要了解 强制类型转换的条件,如 当A被强制转换为B时 要求A必须和B有关系的 即A是B的子类(这种情况会自动向上转换)或者 是B的父类 或者就是B的实例(这种当然不用强制转换也行),
但是你现在的 request.getAttribute("t"); 返回的是long型的 long型与String类型 就不存在父子关系 所以你试图(Stirng)强转的时候 会报错 can not cast to String from long