Java SpringBoot查询3个表并返回json格式的结果
我是新来的春天,sql世界,如果有人可以帮助我在这里 我有三张桌子 表1 -id、appName、版本、教育程度、地区 表2 -id、appName、状态、主题、结果 表3 -id、appName、类型、状态、运动 注: id:主键 appName:唯一密钥 我想创建一个控制器,其中请求主体是“region”、“status”,我想返回appName、status、version、type、version、region的json 如何在springboot中实现同样的效果 我正在考虑扩展crudepository,但无法理解要使用的查询和实现部分Java SpringBoot查询3个表并返回json格式的结果,java,spring,spring-boot,oop,jpa,Java,Spring,Spring Boot,Oop,Jpa,我是新来的春天,sql世界,如果有人可以帮助我在这里 我有三张桌子 表1 -id、appName、版本、教育程度、地区 表2 -id、appName、状态、主题、结果 表3 -id、appName、类型、状态、运动 注: id:主键 appName:唯一密钥 我想创建一个控制器,其中请求主体是“region”、“status”,我想返回appName、status、version、type、version、region的json 如何在springboot中实现同样的效果 我正在考虑扩展crud
PS:提前谢谢。您应该有一个实体,其中将包含表1、表2、表3数据 使用hibernate将表与所有表连接起来 例如
@Entity
Class Table1 {
@Id
Long id;
String appName;
...
}
@Entity
Class Table2 {
@Id
Long id;
String appName;
...
}
@Entity
Class Table3 {
@Id
Long id;
String appName;
...
}
@Entity
Class MainObject {
@Id
Long id;
@OneToOne
Table1 table1;
@OneToOne
Table2 table2;
...
}
使用main对象来使用curdRepository
注意:根据您的需求使用映射
建议:您可以将应用程序名称添加到主对象,因为它在所有表中都是重复的我可以避免创建新实体吗?我想从表1中获取值,然后循环每个记录并从表2中检索结果,以此类推。这样我就需要创建3个文件,像这样扩展Crudepository。这是可能的还是一个糟糕的设计?所以这样想吧。你需要从市场上买三样东西。如果你在3轮中购买,可能需要3个小时。但如果你一开始就把所有东西都带上,你就节省了2个小时。网络电话也是如此。您计划对数据库进行3次调用。是的,这很有意义!我将看看如何实现相同的功能。谢谢你,在JpaRepository中使用带有连接的单个查询并将其与@Query annotation一起应用如何?@SaurabhSingh我想使用这种方法,将结果存储在DTO中,然后返回json,但我面临的问题是,当我们扩展JpaRepository时,我们需要提供单个实体,但需要3个表来执行连接。如何为3个表使用/扩展JpaRepository。你能帮助我吗?提前感谢,您可以尝试使用Spring数据投影或构造函数表达式。创建具有所有必需属性的自定义POJO/接口。欲知详情