java.lang.ClassCastException:java.lang.String 无法转换为

Posted

技术标签:

【中文标题】java.lang.ClassCastException:java.lang.String 无法转换为【英文标题】:java.lang.ClassCastException: java.lang.String cannot be cast to 【发布时间】:2013-07-25 06:31:34 【问题描述】:

我在从数据库中检索数据时遇到此错误。

java.lang.String 无法转换为 com.rahul.model.MyUser] 的根本原因 java.lang.ClassCastException: java.lang.String 无法转换为 com.rahul.model.MyUser。

IntegraController.java

@RequestMapping("/users")
public  ModelAndView users()

    List<MyUser> p =dq3.usersA2();
    for (MyUser p1 : p)
        System.out.println(p1.getUsername());
    
    ModelAndView m=new ModelAndView();
    m.setViewName("users");
    m.addObject("list",p);
    return m;

道.java

@Transactional
@Repository
public class Dao 
    private Session session;
    @Autowired
    private MyUser u;
    @Autowired
    private Post p;
    @Autowired
    private Person per;
    @Autowired
    private Roles r;
    @Autowired
    private Answer a;
    @Autowired
    private HibernateTemplate ht;

    public  List<MyUser> usersA2()
    
        List<MyUser> p2;   
        p2 = ht.executeFind(new HibernateCallback<Object>() 
            @Override
            public Object doInHibernate(Session sn) throws HibernateException, SQLException 
                List<MyUser> p1 =sn.createQuery("SELECT E.username FROM MyUser E").list();
                return p1;
               
        );
        return p2;
    

【问题讨论】:

请缩进你的代码。缩进/格式太可怕了! 为什么你的标题说错误是一个,而在问题中错误是不同的?请解决您的问题。 但其他人都这样做。 欢迎来到SO,请避免尖叫。另外:好的问题通常会得到很好的回应——一个好的问题包括一个正确的标题和格式整齐的来源......除此之外。 1.请记住,*** 需要保持发布问题的标准。 2.请不要尖叫。这些人花时间阅读您的问题并写下答案,这是在帮您一个忙。除此之外,欢迎! :) 【参考方案1】:

您的查询如下所示:"SELECT E.username FROM MyUser E"

E.username 部分将返回用户名字符串列表。获取MyUser对象应该是From MyUser

类似:

List<MyUser> p1 =sn.createQuery("FROM MyUser").list();

【讨论】:

List p1 =sn.createQuery("FROM MyUser u Where u.username=:user").list();这也有效谢谢............

以上是关于java.lang.ClassCastException:java.lang.String 无法转换为的主要内容,如果未能解决你的问题,请参考以下文章