延迟加载(GET操作上只有Spring JPA)

时间:2018-02-27 17:27:45

标签: hibernate spring-data spring-data-jpa lazy-loading

我有实体结构Project-> Task-> Type。项目 - >任务OneToMany和任务 - >输入ManyToOne。现在,如果我有两个关系的Lazy FETCH,我应该如何在getProject / getAllProjects服务方法中为每个任务获取listOfTasks和getTypes?

我读过一堆文章等但到目前为止没有任何帮助我简化我的理解。我在阅读Bs的同时获得了许多Cs的处理。但是如何使用Join fetch获取实体对象的Bs。

我应该在模型项目的project.setTasks ( taskService.getTasksByProject() //repo method in TaskRepository )中执行project.getTasks()还是包含repo方法?第二种选择似乎是将回购存在于模型定义中。

任何指导都将受到高度赞赏。

Model Project
    List<Task> taskList (OneToMany)
    private List<Task> getTasks()
    { return this.taskList;}  

Model Task
    Type taskType (ManyToOne)

ProjectService
    @Transactional(readonly = true)
    public Project getProjectById(final Long projectId) {
         final Project project = projectRepo.findOne(projectId);
         //If I access project.getTasks() works ok but i want to access it outside of transactional. i.e. in controller method 
         //Should I do project.setTasks( taskService.getAllTasksByProjectId() ) which is repo method.
         return project; 
    }

0 个答案:

没有答案