repository接口如下:

package cn.detao.repository;

import org.springframework.data.jpa.repository.JpaRepository;

import org.springframework.data.jpa.repository.Query;

import cn.detao.domain.Role;

import cn.detao.domain.User;

import java.lang.String;

import java.util.List;

public interface UserRepository extends JpaRepository{

User findByName(String name);

User findByUsername(String username);

@Query(value = "SELECT new cn.detao.domain.Role(r.id,r.name,r.nameZh) FROM User u INNER JOIN UserRole ur ON u.id = ur.userId INNER JOIN Role r ON ur.roleId = r.id WHERE u.id = ?1")

ListfindRolesByUser(Integer UserId);

}

role实体:

package cn.detao.domain;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import lombok.Data;

@Entity

@Data

public class Role {

@Id // 主键

@GeneratedValue(strategy = GenerationType.IDENTITY) // 自增长策略

private Integer id;

@Column

private String name;

@Column

private String nameZh;

public Role(Integer id, String name, String nameZh) {

super();

this.id = id;

this.name = name;

this.nameZh = nameZh;

}

public Role() {

}

}

注意大坑:

SELECT new cn.detao.domain.Role(r.id,r.name,r.nameZh) FROM User u INNER JOIN UserRole ur ON u.id = ur.userId INNER JOIN Role r ON ur.roleId = r.id WHERE u.id = ?1

查询语句中的所有表名必须是 javaBean 实体名,不能是mysql表名;字段名也必须是javaBean实体里的属性名,不能是mysql表里的字段名。

java bean join_spring data jpa 关联join查询出自定义实体java bean的坑相关推荐

  1. spring data jpa 多对多查询

    spring data jpa 多对多查询 以用户-角色 多读多为例: User类,用户 @Entity public class User {private String username;priv ...

  2. spring data jpa实现分页查询功能

    spring data jpa实现分页查询功能 HTML代码部分: // 收派标准信息表格 $('#grid').datagrid( {iconCls : 'icon-forward',fit : t ...

  3. jpa 动态查询条件 数组_Spring data jpa 复杂动态查询方式总结

    一.Spring data jpa 简介 首先JPA是Java持久层API,由Sun公司开发, 希望整合ORM技术,实现天下归一.  诞生的缘由是为了整合第三方ORM框架,建立一种标准的方式,目前也是 ...

  4. querydsl动态 sql_Spring data jpa 复杂动态查询方式总结

    一.Spring data jpa 简介 首先JPA是Java持久层API,由Sun公司开发, 希望整合ORM技术,实现天下归一.  诞生的缘由是为了整合第三方ORM框架,建立一种标准的方式,目前也是 ...

  5. 004_Spring Data JPA根据实例查询数据

    1. 创建一个名为spring-data-jpa-example的Java项目, 同时添加相关jar包, 并添加JUnit能力. 2. 查看PagingAndSortingRepository接口下的 ...

  6. Spring Data JPA多表查询

    多表查询在Spring Data JPA中有两种实现方式 第一种创建一个结果集接口来接收多表连查的结果 第二种利用JPA的关联映射来实现 先来熟悉一下几个注解 注解 意思 属性 @ManyToOne ...

  7. jpa 原生sql 查询返回一个实体_spring data系列之jpa

    Springdata 系列之spring data jpa 背景:随着互联网技术的发展,现在的企业开发中用到的用于数据存储的产品,不再仅仅是关系型数据库,而是要根据场景需要选择不同的存储技术,比如用于 ...

  8. jpa 原生sql 查询返回一个实体_JPA查询--使用原生sql 并且把查询结果转为实体对象...

    这篇文章主要记录 使用原生sql查询 并且把查询结果转为实体对象, 注意:这儿使用的数据库 是oracle数据库 这儿记录了三种查询:精确查询,模糊查询,分页查询. 1.把原生sql查询的结果转为实体 ...

  9. java data jpa_java中Spring data jpa通过Predicate查询时间段

    如下,想搜索time1和time2之间的数据,但是查不到cb是重写了方法中的参数CriteriaBuilder,root是参数Rootpredicates.add(cb.between(root.ge ...

最新文章

  1. 汇聚6年思想变迁:知识图谱报告幻灯片大全
  2. 老版本的Spring应用该如何应对这次的RCE漏洞?
  3. 【JVM调优】JVM内存管理调优浅谈
  4. 卷积神经网络中的参数计算
  5. Spring JDBC-数据连接泄露解读
  6. docker安装并运行elasticsearch
  7. Java IO流之对象流
  8. 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(一)视图共性 学习笔记...
  9. vue组件实现查看大图效果
  10. mysql删除n行_订购记录并在MySQL中删除n行
  11. flink的web ui中五颜六色的方块是什么意思?
  12. String类的特点和使用步骤
  13. BZOJ 2324: [ZJOI2011]营救皮卡丘(带上下限的最小费用最大流)
  14. 使用SQL存储过程有什么好处 用视图有什么好处
  15. 使用tensorflow object detection API 训练自己的目标检测模型 (三)
  16. 简说 Python 生态系统的 14 年演变
  17. python 字符串_Python中常用的8种字符串操作方法
  18. Unable to modify the parent container element before the child element is closed
  19. python3+selenium实现126邮箱登陆并发送带附件的邮件(显示等待版本)
  20. 1.17英文题面翻译

热门文章

  1. avformat_alloc_output_context2 -22错误
  2. ffmpeg3.4 yuv编码为h264
  3. 解决:无法解析的外部符号__iob_func
  4. 小强学Python+OpenCV之-1.4.4掩膜mask及位运算
  5. 青龙羊毛——闪电世界(合集篇)
  6. java 039 s rule_Java开发架构篇:DDD模型领域层决策规则树服务设计
  7. c语言程序框一点数字就消失,你用C语言编程时,会犯下面的错误吗?
  8. mysql自带的监控报告_MYSQL监控-自带工具Query Profiler的使用
  9. steamvr unity 连接眼镜_Unity SteamVR插件集成
  10. Python之装饰器入门