大家帮我看看hibernate里的findById方法
谢谢大家,小弟我还有个问题:就是查询的时候public static void main(String[] args) {
UinfoDAO dao = new UinfoDAO();
Uinfo info = dao.findById(new Long(1));
System.out.println("Sign is :"+info.getSign());
dao.getSession().close();
}
只有红色的findById方法返回的是我的Uinfo类型
我要用其他的findBy...方法。比如我想用Email查询,就要用到findByEmail()。可是他返回的是List类型,怎么办啊?我试了试下面的把List转换成我的Uinfo类型,可是报java.lang.ClassCastException应该怎么转换类型啊
public static void main(String[] args) {
UinfoDAO dao = new UinfoDAO();
Object obj = (Object)"wx";
try{
Uinfo info = (Uinfo)dao.findByUname(obj);
System.out.println("Sign is :"+info.getSign());
}catch(HibernateException e){
System.out.println("Entity retrieval failed.");
e.printStackTrace();
}finally{
try{
dao.getSession().close();
}catch(Exception e){
//do nothing;
}
}
}
请大家看看,帮帮我~
搜索更多相关主题的帖子:
findById hibernate
----------------解决方案--------------------------------------------------------
Email是不是唯一的?
不行就自己写dao
俺也是菜鸟,不对别骂
----------------解决方案--------------------------------------------------------
这样转型是不行的,其实返回的list里面存的就是多个对象,你可以把list迭代出来,迭代出来的每一个元素就是一个对象,如果用范型就不用转型,如果不是范型,需要强转之后在取得对象中的属性即可
----------------解决方案--------------------------------------------------------
楼上正解!!
----------------解决方案--------------------------------------------------------
public static void main(String[] args) {
UinfoDAO dao = new UinfoDAO();
Object obj = (Object)"wx";
try{
Uinfo info = (Uinfo)dao.findByUname(obj).get(0);
System.out.println("Sign is :"+info.getSign());
}catch(HibernateException e){
System.out.println("Entity retrieval failed.");
e.printStackTrace();
}finally{
try{
dao.getSession().close();
}catch(Exception e){
//do nothing;
}
}
}
----------------解决方案--------------------------------------------------------