使用RestController进行Spring Boot Projection

时间:2015-10-16 13:58:14

标签: java spring spring-boot

我有一个我想要隐藏的详细信息。但我也需要得到它。所以我写了Projection。但它不能正常工作。

我正在写学校<>老师(等等)模型。

public class School{//...

Set<Teacher>

这个集合不应该从“主要”路径(当然是学校)可见。

所以这是Projection

@Projection(name = "noTeacher", types = {School.class})
public interface SchoolNoTeacher extends ProjectionModel {
    String getName();
    String getSkz();
}

没有getTeachers()

这是Repository

中的默认设置
@RepositoryRestResource(path = "school", excerptProjection = SchoolNoTeacher.class)
public interface SchoolRepository extends PagingAndSortingRepository<School, Long> {//...

但我想自己处理剩下的路径。所以我也有一个控制器。

@RestController
@RequestMapping(ScoolModel.api + "/school")
public class SchoolRestController {//...

投影不起作用。有什么办法解决吗?

1 个答案:

答案 0 :(得分:1)

不要同时使用@RestController@RepositoryRestResource。使用Spring Data Rest,RepositoryRestResource本质上是一个Controller和一个Repository结合在一起以生成HATEOAS服务端点。

如果您需要自定义基本URI,请参阅此answer