Ljava.lang.Object; cannot be cast to……异常

这是因为类型无法转换抛出的异常。
在hibernate框架中,使用了select语句,没有指定返回数据类型,所以默认为Object类,它是所有类的父类。所以当我们遍历list的时候,Object无法转成实体类,便会抛出异常。

**

以下为返回值的四种情况:

**
1、没有select子句有from子句的HQL查询,查询表格的记录,返回的对象是查询类对象;即List<查询类名> list=query.list();

@Query("from UnifiedPo p where p.fileName = ?1")

2、有select子句的HQL查询,查询表格记录,返回的对象是Object[]类对象,即List<Object[]> lsit=query.lsit();

@Query("select p.customerId,p.fileName,p.status from UnifiedPo p where p.fileName = ?1")

3、我们可以通过在HQL语句中使用new list(…),new map(…),的方式来指定查询返回的对象类型。

@Query("select new list(p.customerId,p.fileName,p.status) from UnifiedPo p where p.fileName = ?1")
@Query("select new map(p.customerId as cid,p.fileName as fname,p.status as sta) from UnifiedPo p where p.fileName = ?1")

4、使用new UnifiedPo(…)的方式,即以自定义类型返回的方式,需要在该查询类的持久化类UnifiedPo.java中添加相应的构造函数。

@Query("select new UnifiedPo(p.customerId,p.fileName,p.status) from UnifiedPo p where p.fileName = ?1")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Myname_China

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值