我创建了一个SpringBoot应用程序,它与react frontend UI交互。我想确保数据通过API正确传入,所以我尝试在Postman中使用GET请求。响应返回一个空对象,而不是来自数据库的数据。这是我想要的。我可以没有问题地发布,没有错误地编译。所有的文件都在同一个包里。我在表中有两行对应于两个开括号,我只是没有得到数据。
实体类
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "game_articles")
public class Articles {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "title")
private String title;
@Column(name = "reviewer")
private String reviewer;
@Column(name = "review")
private String review;
@Column(name = "path")
private String path;
@Column(columnDefinition = "integer default 0")
private int comments;
public Articles(String title, String reviewer, String review, String path, int comments){
this.title = title;
this.reviewer = reviewer;
this.review = review;
this.path = path;
this.comments = comments;
}
}
控制器:注解方法是我的第一次尝试。
@CrossOrigin(origins = "http://localhost:3000")
@RequestMapping("/api/v1")
@RestController
@AllArgsConstructor
public class ArticlesController {
@Autowired
ArticlesRepository articlesRepository;
@GetMapping("/articles")
public List<Articles> getAllArticles(){
// createArticle();
return articlesRepository.findAll();
}
public void createArticle(){ //ignore
Articles a = new Articles(1L,"Title Test", "TyTest", "This is a test review", "path/totest", 10);
articlesRepository.save(a);
}
// @GetMapping("/articles")
// public ResponseEntity<List<Articles>> getAllArticles(){
// try {
//// articlesRepository.findAll().forEach(articles::add);
// return new ResponseEntity<>(articles, HttpStatus.OK);
// }
// catch (Exception e){
// return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
// }
// }
}
存储库
@Repository
public interface ArticlesRepository extends JpaRepository<Articles, Long> {
}
日志中的SQL查询。我不确定为什么将列作为articles0引用,但这对向数据库添加数据没有影响。
Hibernate:
select
articles0_.id as id1_0_,
articles0_.comments as comments2_0_,
articles0_.path as path3_0_,
articles0_.review as review4_0_,
articles0_.reviewer as reviewer5_0_,
articles0_.title as title6_0_
from
game_articles articles0_
4条答案
按热度按时间ubof19bj1#
我尝试复制您的问题,因为您使用的是lombok,我建议您尝试在您的
Articles
实体中使用@Data
:它将为实体生成所有的**
@Getter
和@Setter
**方法,当从存储库查询数据时,实体需要这些方法,还将生成@RequiredArgsConstructor
、@ToString
和@EqualsAndHashCode
希望能帮到你。
x0fgdtte2#
Articles类似乎缺少用于其属性的getter和setter方法。我建议使用Lombok自动生成这些方法。如果您不熟悉Lombok,您可以通过here了解更多信息。或者,您可以手动为Articles类的属性编写自己的getter和setter方法。
z5btuh9x3#
我在Articles实体中添加了**@Getter和@Setter**,之后它运行良好。
4c8rllxm4#
只需在GET方法的主体中放入以下行