我有实体类表示POST,如下所示。
@Entity
@Getter
@Setter
public class Post {
@Id
private long id;
private String title;
private String content;
private LocalDateTime created;
}
当我使用jpaRepository查找所有帖子时,我收到了空元素列表。
Empty post response
JpaRepository代码:
@Repository
public interface PostRepository extends JpaRepository<Post, Long> {}
售后服务:
@Service
public class PostService {
@Autowired
private PostRepository postRepository;
public List<Post> getPosts() {
return postRepository.findAll();
}
}
POST控制器:
@RestController
public class PostController {
private final PostService postService;
PostController(PostService postService) {
this.postService = postService;
}
@GetMapping("/posts")
public List<Post> getPosts() {
return postService.getPosts();
}
}
我发现Hibernate可能无法设置Post的值,这就是我得到空元素列表的原因。如果我将POST属性更改为PUBLIC,则一切正常,但我希望将它们保持为私有。我猜@Setter注解不起作用,Hibernate不能将数据解析成Post对象。
有谁知道怎么修吗?
我的Gradle从属关系部分
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'io.springfox:springfox-boot-starter:3.0.0'
implementation 'io.springfox:springfox-swagger-ui:3.0.0'
implementation 'io.springfox:springfox-swagger2:3.0.0'
implementation 'com.h2database:h2'
compileOnly 'org.projectlombok:lombok:1.18.24'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
1条答案
按热度按时间oug3syen1#
请尝试使用以下注解: