在自定义Spring Data JPA + REST控制器中加载延迟

时间:2016-06-27 14:10:51

标签: hibernate spring-data-jpa spring-data-rest

根据How to correctly use PagedResourcesAssembler from Spring Data?中的一些建议,我创建了一个控制器来处理实体的一些自定义查询请求。这些类看起来像:

@BasePathAwareController
public class FooController implements ResourceProcessor<RepositorySearchesResource> {

    @Autowired
    FooRepo repo;

    @RequestMapping("/foo/search/findFooByAttribute")
    public ResponseEntity<PagedResources<Resource<Foo>>> findByAttribute(
            PersistentEntityResourceAssembler entityAssembler) {

        Page<Foo> results = repo.findAll(
                Specifications.where(FooSpec.isOpen()),
                new PageRequest(1, 20));

        return new ResponseEntity<PagedResources<Resource<Foo>>>(
                resourceAssembler.toResource(results),
                HttpStatus.OK);
    }

    @Override
    public RepositorySearchesResource process(
            RepositorySearchesResource resource) {
    ...
    }
}

其中FooRepo是使用@RestResource注释的存储库接口。如果对/foo(默认的findAll)执行GET操作,则端点能够在序列化过程中检索Foo实体上的@OneToMany集合映射。但是在我的自定义存储库中,我得到了着名的could not initialize proxy - no Session异常。如何使我的自定义控制器的行为与@RestResource似乎创建的关于保持Hibernate会话打开的生成的控制器的行为相同?

0 个答案:

没有答案