关于JPA分页2

来源:2-1 如何从根源避免空指针

七十亿分之一_

2020-09-11

一哥我又来了:
比如我有 student表和user表,student中有个user_id, 然后现在有个分页需求,分页查询student就好,但是条件是根据用户名称来搜索。
正常的SQL为 select a.* from student a , user b where a.user_id = b.id and b.name = ‘张三’ limit x,y; 这样的联表查询。
我在想用JPA实现这样的需求,问题如下:
1.如果在不冗余 student的name字段情况下,是否就必须自定义SQL语句来查询了?
2.如果我冗余了name字段,那么user表的name更改就需要维护student的name对吧,如果有很多表都冗余了user的name 那如何才能做到优雅的去维护冗余的name呢?

写回答

1回答

张勤一

2020-09-14

七十亿兄你好:

    1. 如果确实没有冗余 name,那么,只有两种情况可以实现:自定义 SQL 语句(Mapper 也需要自己来写了),或者就是分开查询,然后自己去做手动的分页(很多情况下,我就是自己去做手动分页,也很简单,难度不大)

    2. 如果冗余了 name,那么查询就变得很简单了。这样带来的问题就是违反了范式,那么,维护起来不方便是必然的了。不过,这个也不是问题,简单的增删改就可以解决问题,我个人觉得,问题不大。


    我是勤一,致力于将这门课程的问答区打造为 Java 知识体系知识库,Java 知识体系 BBS!共同建造、维护这门课程,我需要每一个你!

1
0

Java实操避坑指南 SpringBoot/MySQL/Redis错误详解

掌握业务开发中各种类型的坑,,Java web开发领域通用

466 学习 · 204 问题

查看课程