文档章节

Spring Data Jpa 查询返回自定义对象

n
 nibilly
发布于 2015/12/23 22:14
字数 443
阅读 4409
收藏 5
点赞 0
评论 2

http://www.wangyongkui.com/java-jpa-query/

Spring Data Jpa 查询返回自定义对象

转载请注明出处:http://www.wangyongkui.com/java-jpa-query

今天使用Jpa遇到一个问题,发现查询多个字段时返回对象不能自动转换成自定义对象。代码如下:

1 //User 实体对象
3 @Table(name="t_user")
4 public class User {
5     private Integer id;
6     private String name;
7     public Integer getId() {
8         return id;
9     }
10     public void setId(Integer id) {
11         this.id = id;
12     }
13     public Strng getName() {
14         return name;
15     }
16     public void setName(String name) {
17         this.name = name;
18     }
19 }
1 package com.project.user.dto
2 //查询返回对象
3 public class UserDto{
4     private Integer count;
5     private String name;
6     public Integer getCount() {
7         return count;
8     }
9     public void setCount(Integer count) {
10         this.count = count;
11     }
12     public Strng getName() {
13         return name;
14     }
15     public void setName(String name) {
16         this.name = name;
17     }
18 }
1 //查询方法
2 @Query("select count(u),name from User u group by u.name") 
3 public List<UserDto> findCountGroupByName();

写完之后,编译通过,调用查询方法时也没问题,但是到使用时直接报错java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.project.user.dto.UserDto。查看发现返回值类型并不是UserDto而是Object对象,强转也会报错,后来发现@Query支持new对象,所以修改如下:

1 @Query("select new com.project.user.dto.UserDto(count(u),name) from User u group by u.name") 
2 public List<UserDto> findCountGroupByName();

只改这个还不行,还需要在UserDto中实现构造方法,修改如下:

1 package com.project.user.dto
2 //查询返回对象
3 public class UserDto{
4     private Integer count;
5     private String name;
6     public UserDto(Integer count, String name) {
7         this.count = count;
8         this.name = name;
9     }
10     public Integer getCount() {
11         return count;
12     }
13     public void setCount(Integer count) {
14         this.count = count;
15     }
16     public Strng getName() {
17         return name;
18     }
19     public void setName(String name) {
20         this.name = name;
21     }
22 }

好了,这回查询直接返回的就是UserDto对象了。

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
n
粉丝 12
博文 178
码字总数 41743
作品 0
厦门
加载中

评论(2)

n
nibilly

引用来自“小五五五五”的评论

实际上还是 object对象
现在没有用这个做复杂查询了,用spring-mybatis好用
小五五五五
小五五五五
实际上还是 object对象
spring data jpa 详解

本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求。这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring整合的环境中实现...

无敌小学僧 ⋅ 05/30 ⋅ 0

jpa----spring-data-jpa 复杂查询,包括多表关联,分页,排序等

转载:由于此转载文章的出处也是转载的,所以原作者不详 本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求。这里不讲解JPA和Spring-data...

u010775025 ⋅ 05/29 ⋅ 0

Spring mvc 创建完项目测试的时候前台404,后台没有错误信息这是咋了

前天遇到一个问题,springmvc创建的项目测试的时候前台404,后台没有错误输出,奇了怪了...... 这是WEB-INF下的xml文件

好吧我输了 ⋅ 昨天 ⋅ 0

SpringBoot 整合JPA | PageHelper 的分页最简实现

JPA又自己的Pageable来帮助我们实现分页,Mybatis有PageHelper帮我们实现分页,下面直接贴代码。 1. 用JPA实现分页 1.1 pom添加依赖 其实就是JPA的依赖。 1.2 核心实现 更多详细的请看sprin...

FantJ ⋅ 06/02 ⋅ 0

spring-boot整合spring-data-jpa

一、创建spring-boot工程 新建spring-boot项目,选择项目类型为gradle project,勾选初始化依赖如下: 删除resources下application.properties,创建application.yml文件(.yml与.properties...

louieSun ⋅ 06/04 ⋅ 0

《Hibernate快速开始》Query /HQL and JPQL (上)

Hibernate查询语言(HQL)和Java持久性查询语言(JPQL)都是与SQL类似的面向对象模型的查询语言。JPQL是受HQL影响很大的子集。所有的JPQL查询都是有效的HQL查询,但反过来并不正确。 HQL和J...

XuKe ⋅ 01/12 ⋅ 0

(一)SpringMVC之配置DispatcherServlet的一些坑

DispatcherServlet是SpringMVC的核心控制器,就像是SpringMVC的心脏,几乎所有的请求都会经过这个控制器,通过它,大大的降低了模块之间的耦合度。所有学SpringMVC的同学们第一步肯定都是先配...

Java攻城玩家 ⋅ 06/03 ⋅ 0

缅甸银河国际开户13170533331

解决这个问题涉及到两个方面的问题: 配置问题 、引入静态文件问题 1、配置问题 web.xml配置的DispatchServlet如下: [html] view plain copy springmvc org.springframework.web.servlet.D...

银河国际 ⋅ 05/26 ⋅ 0

Spring JMSTemplate 与 JMS 原生API比较

博客分类: JMS Spring 2.x JMSUtil与Spring JmsTemplate的对比 Author:信仰 Date:2012-4-20 未完待续,截止日期2012-4-20 从以下几方面比较JMSUtil和Spring JmsTemplate l 对JNDI的支持 ...

thinkyoung ⋅ 2014/12/12 ⋅ 0

后端发送数据到前端出现溢出问题

用户编辑某个页面时,后台会把一个大的实体(包含所有模块数据)返回到前端。经常出现以下报错,但是重新请求下可能就没有了。是不是因为数据量很大的缘故呢?信息如下: 09:55:04.448 [qtp6...

琴麻岛 ⋅ 04/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MySQL主从复制原理、半同步操作步骤及原理

1.1 企业Linux运维场景数据同步方案 1.1.1 文件级别的异机同步方案 1、scp/sftp/nc 命令可以实现远程数据同步。 2、搭建ftp/http/svn/nfs 服务器,然后在客户端上也可以把数据同步到服务器。...

xiaomin0322 ⋅ 17分钟前 ⋅ 0

Oracle10g 数据及文件迁移过程[原]

QL*Plus: Release 10.2.0.1.0 - Production on 星期三 5月 11 10:22:35 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Re......

harrypotter ⋅ 23分钟前 ⋅ 0

nginx安装

1:安装工具包 wget、vim和gcc yum install -y wget yum install -y vim-enhanced yum install -y make cmake gcc gcc-c++ 2:下载nginx安装包 wget http://nginx.org/download/nginx-1......

壹丶贰 ⋅ 26分钟前 ⋅ 0

ideaVim安装及配置

1.安装插件 File-Settings-Plugins,Browse Repositories,输入ideavim,安装。 重启后,在Tools-Vim Emulator启用。 2.快捷键设置 ideaViim键与idea快捷键有冲突,可以在Settings-Other Se...

Funcy1122 ⋅ 30分钟前 ⋅ 0

MySQL中B+Tree索引原理

B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B...

浮躁的码农 ⋅ 44分钟前 ⋅ 0

两道面试题,带你解析Java类加载机制

在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Grandpa{ static { System.out.println("爷爷在静态代码块"); }} cl...

1527 ⋅ 48分钟前 ⋅ 0

SpringCloud(Data Flow)

dataflow-server

赵-猛 ⋅ 59分钟前 ⋅ 0

深入理解Java虚拟机

这本书我读到第8章,之后就是在读不下去了。 读到后面是一种痛苦的体验,太多的东西是不全面的,大量的专有名词是没有解释的,读到最后很多东西仅仅是一个侧面,所以我觉得,这本书不适合初学...

颖伙虫 ⋅ 今天 ⋅ 0

NanoPi NEO core/ Ubuntu16.04单网卡配置3个IP地址(2个静态,1个动态)

配置 root@NanoPi-NEO-Core:/etc/network# cat interfacesauto loiface lo inet loopbackallow-hotplug eth0iface eth0 inet static address 172.31.188.249 netmask 255.......

SamXIAO ⋅ 今天 ⋅ 0

三步为你的App集成LivePhoto功能

摘要:LivePhoto是iOS9新推出的一种拍照方式,类似于拍摄Gif图或录制视频片段生成图片。如果没有画面感,可以联想《哈利波特》霍格沃茨城堡的壁画,哈哈,很炫酷有木有,但坑爹的是只有iphone6S以...

壹峰 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部