Я пытаюсь реализовать класс обслуживания, который будет извлекать все проекты или отдельные проекты из БД по идентификатору, но в обоих случаях я получаю эту ленивую ошибку инициализации >
Я попробовал переключить режим выборки на жадный, но проблема все еще не устранена.
Вот модель моего проекта
Код: Выделить всё
...
public class Project {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String name;
private String description;
private String category;
private LocalDate startDate;
private LocalDate endDate;
private Boolean status;
@ElementCollection
@JsonIgnore
private List tags = new ArrayList();
@JsonIgnore
@OneToOne(mappedBy = "project", cascade = CascadeType.ALL, orphanRemoval = true)
private Chat chat;
@ManyToOne
private User owner;
@OneToMany(mappedBy = "project", cascade = CascadeType.ALL, orphanRemoval = true)
private List issues = new ArrayList();
@ManyToMany
private List team = new ArrayList();
}
Код: Выделить всё
...
@Override
public List
getAllProjects(User user) throws Exception {
return repo.findByTeamContainingOrOwner(user,user);
}
@Override
public List getProjectByTeam(User user, String category, String tag) throws Exception {
List projects = repo.findByTeamContainingOrOwner(user,user);
if(category!=null){
projects = projects.stream().filter(project -> project.getCategory().equals(category)).toList();
}
if(tag!=null){
projects = projects.stream().filter(project -> project.getTags().contains(tag)).toList();
}
return projects;
}
@Override
public Project getProjectById(Long Id) throws Exception {
Optional project = repo.findById(Id);
if(project.isEmpty()){
throw new Exception("Project not found");
}
return project.get();
}
...
}
Код: Выделить всё
...
//get all projects
@GetMapping
public ResponseEntity getProjects(
@RequestParam(required = false)String category,
@RequestParam(required = false)String tag,
@RequestHeader("Authorization")String jwt
) throws Exception {
User user = userService.findUserProfileByJwt(jwt);
List projects = projectService.getAllProjects(user);
return new ResponseEntity(projects, HttpStatus.OK);
}
//get project by id
@GetMapping("/{id}")
public ResponseEntity getProjectById(
@PathVariable("id")Long ProjectId,
@RequestHeader("Authorization")String jwt
) throws Exception {
User user = userService.findUserProfileByJwt(jwt);
Project project = projectService.getProjectById(ProjectId);
return new ResponseEntity(project, HttpStatus.OK);
}
...
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... ect-issues