HQL中entityManager.createNativeQuery原生sql查询,异常处理:
问题总结:
实践中发现,使用createNativeQuery查询sql语句时,返回的集合,不能直接用来接收,报异常;
异常如下:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.bairuitech.anychat.manamgement.user.entity.xxx
解决方案
:
// 使用createNativeQuery时,后面加上对应的返回接收类型
// 比如 Query query = entityManager.createNativeQuery("sql",xxx.class);
Query query = entityManager.createNativeQuery("select r.* from base_role r,base_roleuser ur where ur.roleId = r.id and ur.userId = ?1",BaseRole.class).setParameter(CommonType.FIRST, userId);
return query.getResultList();