比如在获取用户资料时,我们不想把密码等重要信息全部带出。那时,我们就要用到jpa query 返回指定字段。
我要在网上查找了下都是比较基础的单表查询。好了,如何写呢?
例如,下面的我们会将user的所有属性都会带出来,
@Query("SELECT u FROM BaseUser u JOIN u.roles roles WHERE roles.roleCode = :roleCode)
List<BaseUser> findUserByRoleCode(@Param("roleCode") String roleCode);
⚠:上面select 后面的 “u” 是一个BaseUser,包括所有的属性。这是我们所不需要的,它泄漏了太多的信息。
我们要指定字段,怎么定义呢?前面试了两次都失败了,最后参考[Spring Data Jpa 查询返回自定义对象](https://my.oschina.net/u/1045177/blog/550173) 才解决,非常感谢。也分享下我的经验。
1、 @Query("SELECT name,id,org FROM BaseUser u JOIN u.roles roles WHERE roles.roleCode = :roleCode)
⚠ 这个根本就不能编译通过。
2、 @Query("SELECT u.name,u.id,u.org FROM BaseUser u JOIN u.roles roles WHERE roles.roleCode = :roleCode)
⚠ 这个可以编译通过 但返回的不是BaseUser对象,只包括name,id属性和 org对象。不符合我的条件。
3、@Query("SELECT new BaseUser(u.id,u.loginname,u.roles,u.org) FROM BaseUser u JOIN u.roles roles WHERE roles.roleCode = :roleCode)
只有这个是正确的,返回了baseUser对象。这个要注意的是必须在实体baseuser中创建相应的构造方法。
相关推荐
Spring Data JPA API。 Spring Data JPA 开发文档。 官网 Spring Data JPA API。
spring data jpa 的Specifications动态查询 单条件查询 多条件查询 分页查询
Spring Data JPA中文文档1.4.3
Spring Boot+Jpa多数据源配置Demo,可同时支持多种数据库,不同数据库,同时支持不同数据库的JdbcTemplate
spring注解完整版+spring data jpa官方文档中文翻译+JPA2.0官方文档 文档内容齐全 值得参考学习
'SpringDataJPA从入门到精通'分为12章 内容包括整体认识JPA、JPA基础查询方法、定义查询方法、注解式查询方法、@Entity实例里面常用注解详解、JpaRepository扩展详解、JPA的MVC扩展REST支持、DataSource的配置、乐观...
spring+springMVC+spring-data-jpa+freemarket/json
针对spring boot 集成jpa sql操作进行自定义分库分表逻辑
本文是介绍Spring-data-jpa的PPT的学习笔记,整理...JPA API 条件查询 (子查询,多表连接查询) JPA结合QueryDSL轻松完成复杂查询(自连接,多表连接查询) 参与文档: Pro JPA2中文版:精通Java持久化API 优秀博文读书笔记: ...
springJpa单标递归树形结构
maven+springmvc+springjpa+hibernate简单例子,有需要的朋友可以参考看看,没费的哦。
赠送jar包:spring-data-jpa-2.0.9.RELEASE.jar; 赠送原API文档:spring-data-jpa-2.0.9.RELEASE-javadoc.jar; 赠送源代码:spring-data-jpa-2.0.9.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-data-jpa...
主要介绍了Spring Data Jpa实现自定义repository转DTO,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Spring Boot使用spring-data-jpa配置Mysql多数据源,可用版本
第一章:Spring Data JPA入门 包括:是什么、能干什么、有什么、HelloWorld等 第二章:JpaRepository基本功能 ... 包括:Specifications基础、 Criteria查询基本概念、 Criteria查询实现、多表联接等内容
springboot结合jpa实现分页,动态多条件查询,使用thymeleaf前端渲染数据
#boot-jpa-security-dmdb-freemark spring boot spring security 达梦数据库 ftl assembly 打包
多表查询在spring data jpa中有两种实现方式,第一种是利用hibernate的级联查询来实现,第二种是创建一个结果集的接口来接收连表查询后的结果,这里介绍第二种方式,小编觉得挺不错的,现在分享给大家,也给大家做个...
主要介绍了使用SpringBoot-JPA进行自定义的保存及批量保存功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
在使用Spring-data-jpa进行分页查询时,需要遵循以下步骤: 引入依赖 在pom.xml文件中加入spring-boot-starter-data-jpa依赖,使得项目可以使用Spring-data-jpa框架对数据库进行操作。 手动创建实体类 手动创建一...