文档章节

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

n
 nibilly
发布于 2015/12/23 22:14
字数 443
阅读 5162
收藏 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
粉丝 13
博文 179
码字总数 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 Boot [组件学习-Spring Data JPA]

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

yangrd
08/27
0
0
spring data jpa 详解

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

无敌小学僧
05/30
0
0
Spring Data JPA: 分页和排序实战

之前我们学习了使用Jpa访问关系型数据库 通过Jpa大大简化了我们对数据库的开发工作。但是,之前的例子中我们只提到了最简单的CRUD。 实际上,Spring Data Jpa对于分页以及排序的查询也有着完...

一生只为虞美人
07/25
0
0
jpa----spring-data-jpa 复杂查询,包括多表关联,分页,排序等

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

u010775025
05/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ajax 提交返回map集合 获取不到值

后台java代码 @RequestMapping("/cameraList") @ResponseBody public Map<String, Object> cameraListForPage(@RequestParam(defaultValue = "1", value = "page") Integer page......

S三少S
7分钟前
0
0
TypeScrip最污的技术课-技术胖TypeScript图文视频教程

近日Node.js之父瑞安达尔(Ryan Dahl)发布新的开源项目 deno,从官方介绍来看,可以认为它是下一代 Node,使用 rust 语言代替 C++ 重新编写跨平台底层内核驱动,上层仍然使用 V8 引擎,最终...

JamesView
9分钟前
5
0
Es学习笔记

1.过滤排重聚合查询 筛选出某一个聚合值的个数统计。相当于mysql的distinct. 关键字:cardinality "aggs": { "2":{ "cardinality": { "field": "field" } ...

Gmupload
12分钟前
0
0
h5语义化标签

语义化HTML:用最恰当的HTML元素标签做恰当的事情。 优点: 提升可访问性; SEO; 结构清晰,利于维护; 通用容器:div——块级通用容器;span——短语内容无语义容器。 <title></title>:简...

莫西摩西
17分钟前
0
0
修改11g rac中 asm diskstring的发现路径

问题 : 如果我 们asm_disking以前是/dev/oracleasm/disks/* ,并且现在已经有磁盘组再用这个磁盘串了,那么,我们无法直接修改这个发现串为 ORCL:*,修改会报错,提示存在的磁盘无法使用新的...

tututu_jiang
20分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部