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);
这是model的属性
private String provinceid; //这个是string类型啊
--------------------编程问答--------------------
你数据中的该字段,肯定是设置成了 long类型,你看看吧
--------------------编程问答--------------------
肯定是你哪数据类型没注意,追踪一下
--------------------编程问答--------------------
--------------------编程问答--------------------
类型转换。你找找。Stirng 不能转换Long
--------------------编程问答--------------------
我这明明是string啊
--------------------编程问答--------------------
先不要强转,看看是什么。
String father =(String)query.uniqueResult();
--------------------编程问答--------------------
首先要了解 强制类型转换的条件,如 当A被强制转换为B时 要求A必须和B有关系的 即A是B的子类(这种情况会自动向上转换)或者 是B的父类 或者就是B的实例(这种当然不用强制转换也行),
但是你现在的 request.getAttribute("t"); 返回的是long型的 long型与String类型 就不存在父子关系 所以你试图(Stirng)强转的时候 会报错 can not cast to String from long
--------------------编程问答--------------------
把javaBean也贴出来看看吧
你的uniqueResult()返回的是一个Object(其实就是一个持久化对象)
你怎么给他转成String,
如果你想把它转成String用toString()不是更好些么?
--------------------编程问答--------------------
pid 是什么格式的
--------------------编程问答--------------------
string
--------------------编程问答--------------------
number说错了
--------------------编程问答--------------------
Number num = (Number) query.uniqueResult();
int ret = num.intValue();
--------------------编程问答--------------------
hql怎么给?那里传一个整型
--------------------编程问答--------------------
String s=String.valueOf(int);
--------------------编程问答--------------------
可以转成number,在转string。也可以直接toString()吧
不行啊
Number num = (Number) query.uniqueResult();
int ret = num.intValue();
就是这个问题 解决了
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
--------------------编程问答--------------------
hql怎么给?那里传一个整型
你那不是有HQL嘛
--------------------编程问答--------------------
就是这个问题 解决了
public String findProvinceFather(String sid) {
long l = Long.parseLong(sid);
Query query = getSession().createQuery("select e.provinceid from Province e where e.sid=?");