【问题标题】:Spring Boot Projection with RestController带有 RestController 的 Spring Boot 投影
【发布时间】:2016-01-15 07:33:45
【问题描述】:

我有一个班级,里面有我想隐藏的细节。但我也需要得到它。所以我写了一个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 {//...

并且投影不工作。有什么办法解决吗?

【问题讨论】:

    标签: java spring spring-boot


    【解决方案1】:

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

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

    【讨论】:

    • 那么Projection呢?
    • 如果您让@RepositoryRestResource 按预期处理端点,则投影应该按预期工作。
    • 我现在放弃了资源
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2018-05-12
    • 1970-01-01
    • 2018-08-06
    • 2018-11-05
    相关资源
    最近更新 更多