gpt4 book ai didi

java - 如何让Spring Boot的GET返回JSON

转载 作者:行者123 更新时间:2023-12-01 20:00:17 25 4
gpt4 key购买 nike

我的项目中有一些初学者的错误。我正在使用 Spring Boot 构建 RESTful 服务,但我的 get 方法不起作用。

<小时/>

我创建了一个名为 Project 的实体,如下所示:

@Entity
@Table(name="project")
public class ProjectDto {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="id")
private long id;

@Column(name="caption")
private String caption;

..GETTERS AND SETTERS FOLLOW..
<小时/>

,比我像这样创建 ProjectRepository :

@Repository
public interface ProjectRepository extends JpaRepository<ProjectDto, Long> {

public static final String GET_TIMELINE_PROJECT_CAPTIONS_QUERY = "SELECT
p.id, p.caption FROM ProjectDto p ORDER BY p.creationDate DESC";

@Query(GET_TIMELINE_PROJECT_CAPTIONS_QUERY)
public List<ProjectDto> getTimelineProjectCaptions();

}
<小时/>

..和一个 Controller

@RestController
@RequestMapping("/project")
public class ProjectController {

@Autowired
private ProjectRepository projectRepository;


@CrossOrigin(origins = "http://localhost:4200")
@RequestMapping(value = "/timeline", method = RequestMethod.GET)
public List<ProjectDto> getTimelineProjectCaptions() {
return projectRepository.getTimelineProjectCaptions();
}

}
<小时/>

但这给出了[[5,"sddf"],[3,"asdf"],[2,"gb"],[1,"bg"]],这显然不是不是 JSON

最佳答案

它是 JSON。它是一个数组的数组,这是您的查询实际返回的内容。

如果您想要 ProjectDto 对象的数组,则查询应该是

SELECT p FROM ProjectDto p ORDER BY p.creationDate DESC

不确定为什么您要使用 Dto 后缀命名实体。实体不是 DTO。 DTO 是一种数据传输对象,即专门为数据传输而设计的对象。

关于java - 如何让Spring Boot的GET返回JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48140494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com