hibernate 休眠无法通过Lombok setter设置值

zed5wv10  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(147)

我有实体类表示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'

}

oug3syen

oug3syen1#

请尝试使用以下注解:

@NoArgsConstructor
@Getter
@Setter

相关问题