【问题标题】:java.lang.ClassCastException: java.lang.String cannot be cast tojava.lang.ClassCastException:java.lang.String 无法转换为
【发布时间】: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.请记住,StackOverflow 需要保持发布问题的标准。 2.请不要尖叫。这些人花时间阅读您的问题并写下答案,这是在帮您一个忙。除此之外,欢迎! :)

标签: java spring hibernate servlets


【解决方案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();这也有效谢谢............
猜你喜欢
  • 2021-08-04
  • 2016-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多