JPA问题解决(1)--org.hibernate.jpa.internal.QueryImpl cannot be cast to javax.management.Query报错问题

问题描述

在使用JPA的createQuery()方法时报出以下错误:

org.hibernate.jpa.internal.QueryImpl cannot be cast to javax.management.Query

截图如下:
queryerror

运行环境

JPA + postgreSQL + maven

解决方法

原来的代码如下:

Query query = (Query) em.createQuery("select person from Person person where person.name = :name");

解决方法改为如下:

javax.persistence.Query query = em.createQuery("select person from Person person where person.name = :name");

也就是将生成的query类型改为javax.persistence.Query类型.

原因解析

原因很简单,通过后台报错就可以得出:createQuery方法生成的query对象是org.hibernate.jpa.internal.QueryImpl类型的,在这里无法强制转换成javax.management.Query类型的,所以将其转换成javax.persistence.Query类型的即可.

问题延展

通过以上分析,下面的这些问题应该就是同一类问题了:
1.java.lang.ClassCastException: org.hibernate.internal.SQLQueryImpl cannot be cast to java.util.List
2.ClassCastException: org.hibernate.internal.SQLQueryImpl cannot be cast to org.hibernate.internal.QueryImpl

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值