Spring Boot Jpa 多表关联查询问题 20C

jpa单表分页查询很简单一个自带的findall方法就搞定。那么类似下面的多表关联分页查询该如何解决呢?
SELECT
t.id,t.co_name,e.experiment_code,e.experiment_name
FROM
tb_component t,
tb_component_flow tf,
tb_experiment_apply e
WHERE
t.id = tf.component_id
AND tf.experiment_apply_id = e.id
AND e.experiment_name LIKE '%实验%'
_***跪求大佬们在线指点。**

0

5个回答

Spring Boot Jpa 中多表的关联就使用hibernate的关系映射来完成,而查询和分页就是结合@Query注解,其中有query和countQuery两种,query是确定你要查询出来的字段,countQuery用来统计你要查询的总条数,多表的话建议这两个结合使用,避免出现笛卡儿积过大的问题

1

一样的,springboot jpa中也有多表关联查询,page分页功能,自定义respository,@Query注解方式等

0

也可以写的,就是spql语句和hql语句非常相像没直接@Query注解里写就行

0

1.可以利用@Query注解,直接写原生sql语句
2.利用Specification接口了解一些,关联查询,分页查询样样精通。关联接口必须实现JPASpecification接口即可使用

0

1、将3个表对应的建了3个Entity。
2、返回结果t.id,t.co_name,e.experiment_code,e.experiment_name,对应的建立了一个实体类,如下:

 public class Component {
    private String id;
    private String co_name;
    private String experiment_code;
    private String experiment_name;

    public Component(String id, String co_name, String experiment_code, String experiment_name) {
        this.id = id;
        this.co_name = co_name;
        this.experiment_code = experiment_code;
        this.experiment_name = experiment_name;
    }
    //省略了get、set方法
}

实现代码:

 public void findAllComponent(String experiment_name) {
                //分页参数
        PageRequest pageRequest = new PageRequest(0, 2);
        Page<Component> page = componentRepo.findAll("%实验%", pageRequest);
        List<Component> components = page.getContent();
        for (Component component : components) {
            System.out.println(component.toString());
        }
    }

Repo:

 @Query(value = "SELECT new com.read.first.pojo.Component (t.id,t.co_name,e.experiment_code,e.experiment_name) \n" +
            "FROM\n" +
            "ComponentEntity t, ComponentFlowEntity tf, ExperimentApplyEntity e " +
            "WHERE\n" +
            "t.id = tf.component_id\n" +
            "AND tf.experiment_apply_id = e.id\n" +
            "AND e.experiment_name LIKE ?1 ")
    Page<Component> findAll(String experiment_name, Pageable pageable);

测试结果:
Component{id='1232131233', co_name='原件3', experiment_code='123', experiment_name='实验3'}
Component{id='1232131232', co_name='原件2', experiment_code='123', experiment_name='实验2'}

看到你的问题,自己测试了可以解决,手工打字不易,有疑问请留言。

0
weixin_40989428
weixin_40989428 不加对象关系映射注解的么
大约 2 个月之前 回复
liuyunyihao
流云一号 回复钢铁侠亚洲分侠: 没太明白你的问题,既然是分组查询,为啥返回对象里还包含有其他实体类?请举例说明。另外,JPA在复杂查询方面存在局限性,过于复杂的需求建议在实现层分多次实现,不一定非得一次查询就搞定。
6 个月之前 回复
qq_33649431
钢铁侠亚洲分侠 大佬你好,我想请问一下,使用querydsl jpa 多表关联,并使用分组查询时,自定义返回的对象中包含其它的实体类,应该怎么写查询语句
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
SpringBoot JPA 单/多表联合查询时遇见的!坑!
1,hibernte criteria制作投影映射 ProjectionList proList = Projections.projectionList();//设置投影集合 //SELECT * //DISTINCT proList.add(Projections.distinct(Projections.proper...
SpringBoot + JPA的自学之路(三)多表连接查询
上一节分享了一下JPA的基本操作,但是有时候这些基本操作并不能满足业务的需求,用惯了Mybatis的我觉得多表查询也是挺容易的一件事情,不用修改实体,自己写sql非常的灵活也非常的方便,但是在JPA中要实现多表查询就稍微麻烦一点,需要对实体进行修改,加上一些注解表示与其他实体的关联关系(一对一、一对多、多对一,多对多),下面我们就通过例子来讲解一下。 现在我们假设有这样的一个需求:查询一个用户列...
Spring boot jpa 多表关联查询
Spring boot jpa 多表关联查询
Spring Data JPA 实现多表关联查询
Spring Data JPA&amp;amp;amp;amp;amp;nbsp;的多表操作比较麻烦。下面通过文章与文章类别(多对多的关系)来介绍Spring Data JPA 中的多表操作。 代码实现 jar包依赖和datasource配置这里就不贴了。 实体类 1、实体类 Article.java import java.io.Serializable; import java.util.Date; impor...
(原)SpringBoot JPA 单表/多表联合查询 [ 不用一对多等方式 hibernate 元数据 ]
一、SpringBoot JPA 单表联合查询 Spring Data JPA虽然大大的简化了持久层的开发,但是在实际开发中,很多地方都需要高级动态查询,在实现动态查询时我们需要用到Criteria API,主要是以下三个:   1、Criteria 查询是以元模型的概念为基础的,元模型是为具体持久化单元的受管实体定义的,这些实体可以是...
SpringBoot JPA 表关联查询
今天给大家介绍一下如何利用JPA实现表关联查询。 今天给大家举一个一对多的关联查询,并且是使用JPA原生的findBy语句实现的。 想学习分布式、微服务、JVM、多线程、架构、java、python的童鞋,千万不要扫码,否则后果自负~ 例子中总共有两个实体类,一个是Floor(商品楼层类),另一个是FloorContent(商品楼层内容表)。下面看两张表的源代码: Floor类: ...
spring data jpa 多表 分页 多条件 查询
结论如下: 用querydsl的方式。 既然提供了这种方式就用吧。单实体,单表多条记录,动态条件直接写,不用写dao层。 多表的,大部分用querydsl都能实现。不能实现的,用sql实现。 返回值方面还是和以前一样,返回主实体类,附加的挂在对应的类属性上。需要很高效率的用dto返回。 代码如下: package com.xxx.xxxxx.service.impl; impo...
SpringBoot-JPA进行多表连接查询
通过JPA进行简单的(内)连接查询1.准备1.1开发工具Intellij Idea1.2数据库mysql1.3新建Spring Initializr项目,勾选web,mysql,rest,jpa依赖2.开始2.1项目结构2.2pom.xml内容<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/
spring data jpa 实现多条件复杂查询及多表联查
最近发现JPA在处理单表时,很方便,但多表就比较复杂了。今天写一下端午这两天琢磨的多条件查询,还有多表联查。maven依赖啊,配置,继承写法等知识点不展开说了,之前写过一篇文章: spring boot 配置及使用 spring data jpa这里说一下更新的地方:JPA的配置###################################################### ###sp...
spring boot jpa多表查询展示实体的方法
针对jpa中多表关联查询展示的办法: 1.就是利用hibernate的oneToMany跟ManyToOne的对应关系配置查询,但是这种情况对于数据库的压力较大,一般不采用 2.就是定义Bean,然后repository中配置查询返回实体类,repository中支持Entity的关联查询,查询出的字段赋值new的对象中进行返回处理。 @Data public class Temp
springdataJpa多表查询,多条件组合查询+分页
springdataJpa多表查询,多条件组合查询+分页 注意事项:实体类中的属性不能带有下划线   实体类: 1、EduOrg.java   package com.lhc.bean; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import
【Spring Boot + Kotlin 实战教程】Spring Data JPA 多表关联查询 映射到 Dto 的方法
【Spring Boot + Kotlin 实战教程】Spring Data JPA 多表关联查询 映射到 Dto 的方法 TechArticle package com.ak47.cms.cms.entity import java.util.* import javax.persistence.* @Entity @Table(indexes =...
Spring Jpa多表查询
Spring Jpa多表查询 1.创建两个Entity,SysUserEntity 和SysUserPointEntity,代码如下 //SysUserEntity @Entity(name = &quot;SysUser&quot;) @Table(name = &quot;SysUser&quot;) public class SysUserEntity implements Seriali...
SpringData Jpa 的JPQL 多表关联查询
package com.touchhealth.trade.service.afterSale; import com.touchealth.common.page.Pager; import com.touchhealth.trade.bo.afterSale.AfterSaleBo; import com.touchhealth.trade.entity.AfterSaleDo; impo...
spring data jpa 多对一联表查询
数据库: 实体类: public class Product { @Id @GeneratedValue private Long id; private String name; private Double price; private String standerd; private String code; private
Spring Data Jpa 复杂查询总结 (多表关联 以及 自定义分页 )
只是做一个总结所以就不多说废话了 实体类 @Entity @Table(name = &amp;amp;quot;t_hotel&amp;amp;quot;) @Data public class THotel { @Id private int id; private String name; private String address; /** * 城市id */ p...
关于Spring-JPA框架下使用多表查询的应用实例记录
1.目的:记录如何 用jpa来实现快速的多表查询, 暂不深入探究jpa的内部实现 2. 说明情形: @1所涉及的表为t_user(id,name,date,...);t_factory_user(id,factory_id,user_id,...), 其中表s_factory_user[user_id]==t_user[id], 为主外键的关联关系 @2现状  在entity类User中,
SpringBoot整合MongoDB实现聚合查询(多表联查)以及一套简单CRUD
pom依赖 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven...
spring data jpa 表不关联多表查询
直接上代码import com.supergk.core.project.bean.ProjectUser; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRe
spring data jpa 多表多条件查询
spring data jpa 多表多条件查询
《Spring Data JPA》jpa表关联查询,聚合查询,JPQL语句
单表查询 需要保证类中有此构造方法 聚合查询 /** * 以JPQL面向对象的方式 连接查询 * @return */ @Query(value=&quot;SELECT new com.zzy.demo.utils.dto.PersonCount(p.name as name, COUNT(p.id) as totalNum) FROM Person p ...
SpringDataJPA中使用EntityManager操作返回多表连接结果集
上一篇博客中说过关于SpringDataJPA中多表关联查询,自定义实体类接收返回的结果集:新建Vo类的方式。 单表操作返回实体对象就不必说了,可以用Specification动态查询,也可以直接在接口上定义查询,加非空判断之类的。 但是问题来了,这个返回对象是我们自定义的,在@Query()中是select new XXXX()返回出来的,那么我们用这种方法拼多条件和分页时怎么处理呢? 第...
springboot操作MongoDB增删改查以及多表聚合查询
springboot操作MongoDB增删改查以及多表聚合查询 废话不多说,最近的项目决定弃用mysql使用MongoDB,作为一个去年大学毕业的菜鸡在没有别人带的情况下从知道这么个数据库到熟练使用遇到不少坑,在网上找到的资料里也不是多么完善,磕磕绊绊总算初步学会使用MongoDB。谨在此哔哔一些自己的学习经验,希望能够帮助到一些初学者。 第一步、整合MongoDB。 这一步比较简单,引入依...
spring-boot 分页查询(关联表)
Spring-boot是微框架,是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
JPA一对一,一对多,多对多关系映射
JPA一对一,一对多,多对多关系映射,面向对象领域
spring data jpa使用@Query原生Sql多表联合查询
在jpa中使用联合查询,关于返回值类型的问题,一直不知该怎么写,今天终于找到了解决的办法,记录一下 ArticleVoteRepository.java: @RepositoryRestResource(path = "vote") public interface ArticleVoteRepository extends JpaRepository { @Query(native
Spring data jpa 多表查询(二:多表动态条件查询)
上一章说完单表动态条件查询,这章就说下多表关联查询 1、先说一对多关系,就以上一章的A模型和B模型,为例 A 对应 多个 B,而现在需求就是查询A和B关联,并需要传入的动态参数,可能是A模型中的属性,也有可能是B模型中的参数 还是用伪代码来说明,并且用的是Specification来查询(上一章有说明) public Page findA(Pageable pageable
SpringDataJPA中使用Specification进行表连接多条件分页动态查询
一直使用springboot开发,很久没用过jpa了,最近公司的项目用jpa,这就用到了Specification进行多表连接多条件动态查询,想了想还是简单的总结一下。废话不多说,具体实现如下: 1.定义接口,继承JpaRepository&lt;X,X&gt;,JpaSpecificationExecutor&lt;Project&gt; public interface Projects...
jpa 多表关联查询及SQL语句
@Entity@Table(name = &quot;goods&quot;)public class Goods {private String id;private String name;private String description;private Double price;private String yuanjia;private Date createDate;private Date modif...
spring boot 2使用Mybatis多表关联查询
模拟业务关系: 一个用户user有对应的一个公司company,每个用户有多个账户account。 spring boot 2的环境搭建见上文:spring boot 2整合mybatis 一、mysql创表和模拟数据sql CREATE TABLE IF NOT EXISTS `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name...
SpringData JPA框架使用时多表关联返回自定义参数方案
关联多张表构造方法返回自定义字段写法 /* *构造方法类 *放入Constant类中作为常量配置,便于管理 * / JpaVoConstants.XXVO = &amp;quot; new com.XX.XX.XXVO &amp;quot; //受到容器托管的EntityManager可以直接通过注解@PersistenceContext注入的方式来获得 @PersistenceContext private EntityMa...
springdatajpa多表关系多对多单向关联
8.多表关系—&amp;gt;多对多查询 #####8.1多对多实体类 package com.xcl.domain; import javax.persistence.*; import java.util.HashSet; import java.util.Set; @Entity @Table(name = &quot;student&quot;) public class Student { @Id ...
Spring Data JPA 三:实现多表联查的另一种方式
         在一个项目的实际开发过程中牵涉到复杂业务的时候,我们不可避免的需要使用中间表来进行数据连接,有的同学就说了,我可以采用JPA进行主外键进行关联啊?多对多,多对一,一对一,等,采用主外键关联在数据的操作过程中具有很强的耦合性,尤其对于需要经常删改数据表而言,我们是不建议采用主外键关联这种模式        对于项目中需要用到多表联查的需求,我们可以通过封装实体类的方式来实现,对...
spring boot JPA 注意的几个问题 (session提前关闭、关联集合属性延迟加载问题、多表查询问题等)
如图1所示,会议提前关闭问题 spring整合hibernate或者spring boot里使用jpa,本质都是hibernate的sesison操作数据库,默认sesison会提前关闭,报延迟加载..异常,要等到后台值返回到视图层之后,才关闭sesison才合理; spring boot里这样设置即可,延续session到返回视图层   2,多表关联时的延迟加载。 @ManyToM...
如何实现mybatis+Springboot 关联查询
通过这一周的工作,我认为mybatis+Springboot中的关联查询很重要,我总结了一下,希望能帮助到大家。我用的是基于mapper 的方式实现团队信息表和团队成员信息表的一对多的关联查询; 具体步骤如下: 1)         创建实体类: 团队信息表的实体类: 团队成员信息表的实体类: 2)        mapper接口的实现   3)
Spring Data JPA 系列 —— 两张表(多对多关联,关联表带扩展字段)
这里通过一个完整的例子展示如何通过 JPA 对两张表(多对多关联,关联表带扩展字段)进行增删改查操作。
JPA复杂查询加分页查询的快速开发
针对使用JPA方式操作数据库的复杂查询快速开发,复制代码直接使用,快速开发
Springboot2 jpa关联关系懒加载json序列化
实体类 student表: @manytoone的Many端 import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import javax.persistence.*; import java.util.Date; @Entity @Table(name = &quot;students&quot;) // @JsonIgnoreP...
Spring Data Jpa 的简单查询多表查询HQL,SQL ,动态查询, QueryDsl ,自定义查询笔记
基本知识: Repository:仅仅只是一个标识,没有任何方法,方便Spring自动扫描识别 CrudRepository:继承Repository,实现一组CRUD相关方法 PagingAndStortingRepository:继承CrudRepository,实现一组分页排序相关方法 JpaRepository:继承PagingAndStortingRepository...
jpa如何实现像mybatis一样的多表关联查询并返回多表多字段
最近项目一直在用jpa开发,总体来说jpa还是很方便的,较之于mybatis,尤其是做一些简单查询的时候。如果你想查某个表,只需写个entity,写个repository,service里注入一下repository就开始查了。如果你想查某个字段,直接get就行了。开发效率,就一个字,高。 但是对于复杂查询,比如多表多条件查询,头疼事就来了。这里的多条件我是指查询条件的个数不固定,比如最多有五个...
相关热词 c#异步发送kafka c#窗体编号 c# 操作二进制文件 c# 反射 机制 c#线程 窗体失去响应 c#角度转弧度 c# 解析gps数据 c# vs设置 语法版本 c# json含回车 c#多线程demo