java.lang.ClassCastException: java.lang.String cannot be cast to eshop.User

QJKT7777777 2008-11-21 04:18:56
public User get(String username){ //用用户名取得该用户的所有属性
Session session=HibernateUtil.currentSession();
tx=session.beginTransaction();
String sql="select username from User where username='"+username+"'";
List list=session.createQuery(sql).list();
User user=(User)list.iterator().next();
tx.commit();
HibernateUtil.closeSession();
return user;

---------------------------------------

user2=userdao2.get(username);

出现错误java.lang.ClassCastException: java.lang.String cannot be cast to eshop.User

eshop.UserDAO.get(UserDAO.java:76)
eshop.action.admin.AdminLogin.execute(AdminLogin.java:54)


红色为报错部分 貌似是强制转换错误 不知道怎么解决 希望大家来帮帮忙 先谢谢大家了
...全文
674 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
QJKT7777777 2008-11-22
  • 打赏
  • 举报
回复
谢谢 大家 搞定了!~
tzb08 2008-11-21
  • 打赏
  • 举报
回复
你要返回的是一个User,是吧,那把

User user=(User)list.iterator().next();


换成:


if(list.size() > 0){
User user = (User )list.get(0);
}
zidasine 2008-11-21
  • 打赏
  • 举报
回复
String sql="select u from User u where u.username='"+username+"'";
或者
String sql="from User where username='"+username+"'";
zidasine 2008-11-21
  • 打赏
  • 举报
回复
java.lang.String cannot be cast to eshop.User
你查的是一个字符串select username
不能强转成User对象
String sql="select username from User where username='"+username+"'";
改成
String sql="select u from User u where username='"+username+"'";
或者
String sql="from User u where username='"+username+"'";
zhj92lxs 2008-11-21
  • 打赏
  • 举报
回复
你的list里不是user类型的吧
zhen9580 2008-11-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tjyyyatjp5305231 的回复:]
引用 3 楼 zidasine 的回复:
java.lang.String cannot be cast to eshop.User
你查的是一个字符串select username
不能强转成User对象
String sql="select username from User where username='"+username+"'";
改成
String sql="select u from User u where username='"+username+"'";
或者
String sql="from User u where username='"+username+"'";


查的是字符串,你强制转换成USER,当然会错 .顶这位老兄…
[/Quote]
你查询的不是User类吧 怎么能给user赋值那
WUHUAYONG 2008-11-21
  • 打赏
  • 举报
回复
先转为成一个USER的PO,再放入LIST 才行吧
tjyyyatjp5305231 2008-11-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zidasine 的回复:]
java.lang.String cannot be cast to eshop.User
你查的是一个字符串select username
不能强转成User对象
String sql="select username from User where username='"+username+"'";
改成
String sql="select u from User u where username='"+username+"'";
或者
String sql="from User u where username='"+username+"'";
[/Quote]

查的是字符串,你强制转换成USER,当然会错 .顶这位老兄的做法

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧