[英]JPQL @query with relation table to json
我正在使用@Query
創建JPQL查詢以獲取到JSON的關系數據列表
package thymeleaf.test.repository;
import java.util.List;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import thymeleaf.test.model.Student;
@RepositoryRestResource
public interface StudentRepo extends CrudRepository<Student, Integer> {
@Query("select s,t.teachName FROM Student s JOIN s.teacher t WHERE s.teacher.teachName= t.teachName")
List<Student> findAll() ;
}
我得到以下結果:
[
[
{
"stuId": 1,
"stuName": "Pawarut klai-armon ",
"stuAge": 21
},
"sgkyrtgefewd "
]
]
我希望此查詢返回它:
[
{
"stuId": 1,
"stuName": "Pawarut klai-armon ",
"stuAge": 21
"teachName": "sgkyrtgefewd "
}
]
您需要顯式命名您要獲取的螞蟻的字段,如下所示:
select s.stuId, s.stuName, s.stuAge, t.teachName FROM Student s JOIN s.teacher t WHERE s.teacher.teachName= t.teachName
如果需要命名字段,則需要定義DTO對象,如下所示:
class StuInfoWithTeacherName {
private long id;
private String stuName;
private int stuAge;
private String teacherName;
public StuInfoWithTeacherName(id, stuName, stuAge, teacherName){
//omitted
}
}
比通話查詢像
select new StuInfoWithTeacherName(s.stuId, s.stuName, s.stuAge, t.teachName) FROM Student s JOIN s.teacher t WHERE s.teacher.teachName= t.teachName
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.