文档章节

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

n
 nibilly
发布于 2015/12/23 22:14
字数 443
阅读 5727
收藏 5

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对象了。

 

 

 

 

 

本文转载自:http://www.wangyongkui.com/java-jpa-query/

共有 人打赏支持
n
粉丝 14
博文 182
码字总数 41779
作品 0
厦门
私信 提问
加载中

评论(2)

n
nibilly

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

实际上还是 object对象
现在没有用这个做复杂查询了,用spring-mybatis好用
小五五五五
小五五五五
实际上还是 object对象
(入门帖)使用 Spring Data JPA 简化 JPA 开发

本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示例;接着重构该示例,并引入 Spring 框架,这两部分...

阿莱倪士
2014/01/09
0
0
使用 Spring Data JPA 简化 JPA 开发

从一个简单的 JPA 示例开始 本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示例;接着重构该示例,并...

IBMdW
2012/03/02
4.3K
8
Spring Data JPA 1.9.0 发布

Spring Data JPA 1.9.0 发布,此版本更新内容如下: * DATAJPA-787 - Release 1.9 GA (Gosling). * DATAJPA-785 - Make sure the build works with Hibernate 5 GA. * DATAJPA-779 - Update ......

淡漠悠然
2015/09/04
1K
0
Spring Boot [组件学习-Spring Data JPA]

导读: 在上篇文章中对Spring MVC常用的一些注解做了简要的说明,在这篇文章中主要对Spring Data JPA 做一个简要的说明,并附有一个简单的例子,可以体会到Spring Data JPA 的强大之处。 Sp...

yangrd
2018/08/27
0
0
Spring Boot数据库操作之Spring Boot Data JPA

版权声明:本文为博主原创文章,转载需注明出处。 https://blog.csdn.net/jay100500/article/details/81264973 作者:谭东 JPA全称是Java Persistence API,即JAVA持久层API。可以讲JDK注解的...

谭东jay
2018/07/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
7
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
7
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
昨天
8
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
昨天
4
0
解决SVN:E210007无法协商认证机制

svn:E210007 svn: Cannot negotiate authentication mechanism 执行下面代码即可 sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap...

临江仙卜算子
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部