我有实体结构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;
}