spring boot 中如何根据id查询数据库表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot 中如何根据id查询数据库表相关的知识,希望对你有一定的参考价值。
参考技术A sql server 查询一个表的所有信息:查询语法为:select * from 表名 语法中的”*“代表所有。实际操作举例:某数据中有一表叫”user_user“,表中存储了一些用户信息;
1、查询”user_user“表中所有人员信息且所有字段,sql语句:select * from user_user
2、查询”user_use“表中所有人员信息且部分字段。sql语句:select user_show_id,user_name,pinyin,password from user_user
3、条件查询”user_user“表,以user_name为查询条件查询所有信息。sql语句:select * from user_user where user_name='李丹'
4、模糊查询”user_user“表,以user_name为模糊查询条件查询所有信息。sql语句:select * from user_user where user_name like '%张%'
如何在JAVA JPA Spring Boot中的一个SQL查询中选择多个数据
我有用户实体,其中包含组列表。每个组都有两个列表:submissionDocumentType和reviewDocumentType。使用尽可能少的数据库调用获取User的GroupDetails对象列表的最有效方法是什么(请参阅下面的最终预期结果)?
user.Java
public class User {
@Id
@GeneratedValue(generator ="uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String id;
@ManyToMany(mappedBy = "users")
private Set<UserGroup> userGroups;
用户组
public class UserGroup {
@Id
@GeneratedValue(generator ="uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String id;
@ManyToMany(mappedBy = "submissionUserGroups")
private List <DocumentType> submissionDocumentType;
@ManyToMany(mappedBy = "reviewUserGroups")
private List <DocumentType> reviewDocumentType;
group details.Java
public class GroupDetails {
private String groupTitle;
private List<String> reviewDocTypes;
private List<String> submitDocTypes;
GET方法的预期响应
[
{
"groupTitle": "Group one",
"reviewDocTypes": [
"Prasymas Eazy",
"Prasymas Tgwz",
"Prasymas Gien",
"Prasymas Docs",
"Prasymas Ecyd",
"Prasymas Sjvz"
],
"submitDocTypes": [
"Prasymas Buor",
"Prasymas Kzhc",
"Prasymas Zokx",
"Prasymas Vvtb",
"Prasymas Docs",
"Prasymas Lutj",
"atostogu prasymas"
]
},
{
"groupTitle": "Group two",
"reviewDocTypes": [
"Prasymas Tgwz",
"Prasymas Gien",
"Prasymas Kzhc",
"Prasymas Kblj",
"Prasymas Docs",
"Prasymas Ecyd"
],
"submitDocTypes": [
"Prasymas Tgwz",
"Prasymas Wmwx",
"Prasymas Buor",
"Prasymas Gien",
"Prasymas Kzhc",
"Prasymas Kblj",
"Prasymas Docs",
"Prasymas Xdau",
"Prasymas Lutj",
"Prasymas Ecyd",
"atostogu prasymas"
]
}
]
答案
我想你可以在一个查询中做到这一点。正如你在the reference documentation中看到的:
Spring Data允许建模专用返回类型,以更有选择地检索托管聚合的部分视图。将查询结果限制为仅名称属性的最简单方法是声明一个接口,该接口公开要读取的属性的访问器方法
所以我们可以使用这样的查询方法获取结果:
interface UserRepository extends Repository<User, String> {
Collection<GroupDetails> findById(String userId);
}
以上是关于spring boot 中如何根据id查询数据库表的主要内容,如果未能解决你的问题,请参考以下文章
如何在spring boot和hibernate中计算特定id的记录
Spring Boot如何通过查找表将两个实体嵌套在一起而返回另一个实体?
spring boot 学习心得 使用JpaRepository注解自定义SQL查询数据库多表查询
如何根据postgres的jsonb列的where条件(无本机查询)使用jpa在spring boot中选择数据?