2014-07-05 3 views
0

형 변환 중 오류가 발생합니다.요청 처리에 실패했습니다. 중첩 예외는 java.lang.ClassCastException : java.lang.Class는 java.lang.String으로 형 변환 될 수 없습니다.

type Rapport d''exception 

message Request processing failed; nested exception is java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.String 

description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête. 

exception 

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.String 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973) 
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:644) 
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
cause mère 

java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.String 
    org.hibernate.type.descriptor.java.StringTypeDescriptor.unwrap(StringTypeDescriptor.java:39) 
    org.hibernate.type.descriptor.sql.VarcharTypeDescriptor$1.doBind(VarcharTypeDescriptor.java:64) 
    org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:90) 
    org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:286) 
    org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:281) 
    org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:67) 

내 UserDao.java

public boolean checkLogin(User user) { 
    String hql = "FROM User u WHERE u.username = :username and u.password = :password"; 
    Query query = sessionFactory.openSession().createQuery(hql); 
    query.setParameter("username", user.getClass()); 
    query.setParameter("password", user.getPassword()); 
    int result; 
    query.setMaxResults(1); 
    result = query.list().size(); 

    if(result < 1) { 
     return false; 
    } else{ 
     return true; 
    } 
} 
+0

자격 코드를 붙여 주실 수 있습니까? – Pracede

+0

내 테이블 사용자 : NOT은'EXISTS user' ( 'id'의 INT (11) NOT NULL AUTO_INCREMENT, 'username'의 VARCHAR (45) DEFAULT NULL의 'password'의 VARCHAR (45) DEFAULT NULL의 경우 테이블 만들기 PRIMARY KEY ('id') ) ENGINE = InnoDB DEFAULT CHARSET = utf8 AUTO_INCREMENT = 2; – user3808053

+0

편집 기능을 사용하여 원래 질문에 세부 사항을 추가하십시오 – Deepend

답변

2
: 나는 그것을

  • springMVC 컬렉션
  • hibrnate 4.3.5

예외를 해결하는 방법을 모른다

query.setParameter("username", user.getClass());은 문제의 원인. 다음

시도 : 나는 당신의 사용자 클래스를 가정하고

query.setParameter("username", user.getUsername()); 

이 때 getUserName() 메소드가 있습니다.

+0

네가 맞다고 생각한다 – Pracede

+0

고맙다. :) – user3808053

관련 문제