繁体   English   中英

hibernate错误:java.lang.ClassCastException:org.hibernate.impl.QueryImpl无法转换为javax.persistence.Query

[英]hibernate Error : java.lang.ClassCastException: org.hibernate.impl.QueryImpl cannot be cast to javax.persistence.Query

我尝试使用java和hibernate开发一个小型应用程序,当我运行该应用程序的测试类时,出现以下错误消息:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Hibernate: insert into REUNION (TITREREUNION, DATEREUNION) values (?, ?)
Hibernate: insert into REUNION (TITREREUNION, DATEREUNION) values (?, ?)
Hibernate: insert into REUNION (TITREREUNION, DATEREUNION) values (?, ?)
Exception in thread "main" java.lang.ClassCastException: org.hibernate.impl.QueryImpl     cannot be cast to javax.persistence.Query
at metier.MetierImpl.getAllReunion(MetierImpl.java:62)
at Test.main(Test.java:21)

如您所见,错误是MetierImpl类:导致错误的方法是:

 public Reunion getAllReunion(){

    Session session =sessionFactory.getCurrentSession();
    session.beginTransaction();
    Query req=(Query) session.createQuery("select R  from Reunion ");
    List<Reunion> list = req.getResultList();
    Reunion r=(Reunion) req.getResultList().get(0);

    return r;


}

Hibernate Session.createQuery()返回org.hibernate.Query的实例。 您的代码将此对象强制转换为javax.persistence.Query ,但它不是javax.persistence.Query的实例。 因此,您会收到此异常。

不要进行javax.persistence.Query ,而是导入正确的Query类:不是javax.persistence.Query ,而是org.hibernate.Query

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM