Hibernate HQL查询异常:java.lang.ClassCastException解决

有时候,我们查询只需要查询bean的某一个部分,而不需要它所有的属性,这时候HQL就可以这样写:

假设有一个类User(省略getter setter):

public class User {
	private String name;
	private int age;
	private boolean sex;

}

如果只需要查询姓名和年龄,则HQL可以这样写:select new User(name,age) from User;

此时实体类中需要有一个new User(name,age) 这样的构造方法。

问题来了,有时候我们的实体类和某些lib中的java类会有冲突,比如我遇到的问题就是:我有一个bean叫Member,结果用上述HQL的时候就报了java.lang.ClassCastException异常。

原因:存在同名的java类,这是导致这个异常的原因之一。

解决方法:给bean加上具体路径:如     select new com.exampley.User(name,age) from com.exampley.User;

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2025-01-02 15:03:15

Hibernate HQL查询异常:java.lang.ClassCastException解决的相关文章

关于利用动态代理手写数据库连接池的异常 java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to java.sql.Connection

代码如下: final Connection conn=pool.remove(0); //利用动态代理改造close方法 Connection proxy= (Connection) Proxy.newProxyInstance(conn.getClass().getClassLoader(), conn.getClass().getInterfaces(), new InvocationHandler() { @Override public Object invoke(Object pro

在maven项目中使用apache cxf中遇到异常 java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter

使用maven虽然很方便,写一个dependency的标签就可以直接从仓库下载对应的jar包,还能处理该jar包的继承依赖关系.但是同时需要你对jar包更加了解,如果依赖关系很复杂,那么很可能会产生jar包冲突,从而使项目报一些莫名其妙的异常. 在用apache cxf的过程中就出现了这样的问题. 1,在项目的pom.xml中加入apache cxf的依赖配置: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs

异常java.lang.NumberFormatException解决

原因一:超出了int类型的取值范围 项目中要把十六进制字符串转化为十进制, 用到了到了Integer.parseInt(str1.trim(), 16):这个是不是后抛出java.lang.NumberFormatException异常,让老子看了半天! 后来发现是超出了int类型的取值范围,要用 BigInteger big = new BigInteger(str1.trim(),16);代替即可!!! 原因二:字符串类型不对. String numString = "1  ";

【MyEcplise】导入项目报错:Errors running builder &#39;JavaScript Validator&#39; on project &#39;项目名&#39;. java.lang.ClassCastException

导入项目报错:Errors running builder 'JavaScript Validator' on project '项目名'. java.lang.ClassCastException 解决方法: project -->Properties Builbers -->JavaScript Validator勾选去掉 解决问题! [MyEcplise]导入项目报错:Errors running builder 'JavaScript Validator' on project '项目

解决EJB本地调用“java.lang.ClassCastException: $Proxy96 cannot be cast to com.tgb.ejb.UserManager”异常

EJB本地调用方式:把Webclient和EJB服务端部署到同一个JBoss,client和server通过一个JVM进行通信. Web客户端本地调用时.需引用EJB服务端打包的jar,不需引用JBoss/client下的jar和src下的jndi.properties文件.调用方式例如以下: <%@ page language="java" import="java.util.*,javax.naming.*,com.tgb.ejb.*" pageEncod

mybatis查询异常-Error querying database. Cause: java.lang.ClassCastException: org.apache.ibatis.executor.ExecutionPlaceholder cannot be cast to java.util.List

背景,mybatis查询的时候直接取的sqlsession,没有包装成SqlSessionTemplate,没有走spring提供的代理. 然后我写的获取sqlsession的代码没有考虑到并发的情况,导致sqlsession建的太多 并发大了之后,查询报错 org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.ClassCastException: org

解决EJB本地调用报“java.lang.ClassCastException: $Proxy96 cannot be cast to com.tgb.ejb.UserManager”异常问题

EJB本地调用方式:把Web客户端和EJB服务端部署到同一个JBoss,客户端和服务器通过一个JVM进行通信. Web客户端本地调用时,需引用EJB服务端打包的jar,不需引用JBoss/client下的jar和src下的jndi.properties文件,调用方式如下: <%@ page language="java" import="java.util.*,javax.naming.*,com.tgb.ejb.*" pageEncoding="u

java.lang.ClassCastException: Ljava.lang.Object; cannot be cast to com.entity.Advertisem异常

今天一不小心就碰到了这样的问题,以前从来没有碰到过,在网上搜了很多办法,思路正确,但是还是要根据自己的程序改变. 一开始写的是hql语句进行统计每个月的数据,但是试了很久,程序一直提醒hql语句异常,没办法,只能修改查询语句了,就改成了sql语句进行统计. 错误就由此产生了,一发不可收拾啊: java.lang.ClassCastException: Ljava.lang.Object; cannot be cast to com.entity.Advertisem这个异常解决办法很简单,首先要

Hibernate保存时报java.lang.ClassCastException

今天改需求的是遇到一个问题,Hibernate执行save()方法时报错:java.lang.ClassCastException: java.lang.String cannot be cast to java.math.BigDecimal.在网上搜了一下,几乎所有的回答都是说实体.映射文件和表结构之间类型不对应.检查了好几遍也没有发现问题,只好想其它办法实现,结果在写其它方法代码的时候发现了问题所在. 我通过Hibernate去往一张视图的里存数据,视图是查通过dblink连接的一个数据库