-10

データベースからデータを取得中にこのエラーが発生しました。

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;
}

Dao.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;
    }
4

1 に答える 1

3

クエリは次のようになります。"SELECT E.username FROM MyUser E"

このE.username部分は、ユーザー名文字列のリストを返します。From MyUserオブジェクトを取得する必要がありMyUserます。

何かのようなもの:

List<MyUser> p1 =sn.createQuery("FROM MyUser").list();
于 2013-07-25T11:35:14.313 に答える