2015-10-16 151 views
1

我有一个类,里面有我想要隐藏的细节。但我也需要明白。所以我写了一个Projection。但它不能像它应该那样工作。带RestController的弹簧投影投影

我在写学校<>教师(依此类推)模型。

public class School{//... 

有一个Set<Teacher>

这个集合不应该从'main'路径(当然是School)看到。

因此,这里的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

请不要一起使用@RestController@RepositoryRestResource。在Spring Data Rest中,RepositoryRestResource本质上是一个Controller和一个Repository,它们结合在一起产生一个HATEOAS服务端点。

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

+0

“投影”呢? – rala

+0

如果您让'@ RepositoryRestResource'按预期处理终点,那么投影应该按预期工作。 –

+0

我现在放弃了资源 – rala