Я работаю над приложением Spring Boot, и метод репозитория для получения с помощью apiKey возвращает null.
Это контроллер:
@RestController
@RequestMapping("/api/wetlab")
public class WetLabController {
@Autowired
WetLabService wetLabService;
@GetMapping("/getAllWetlabsType")
@PreAuthorize("hasRole('INTERNAL')")
public List<WetLab> getAllWetlabs() {
return wetLabService.getAllWetLabs();
}
@GetMapping("/{apiKey}")
@PreAuthorize("hasRole('INTERNAL')")
public WetLab getByApiKey(@PathVariable UUID apiKey) {
return wetLabService.getByApiKey(apiKey);
}
@ExceptionHandler(DataRetrievalFailureException.class)
void handleNotFound(HttpServletResponse response, Exception e) throws IOException {
response.sendError(HttpStatus.NOT_FOUND.value(), e.getMessage());
}
}
Это служба
@Service
public class WetLabService {
@Autowired
WetLabRepository wetLabRepo;
public List<WetLab> getAllWetLabs() {
List<WetLab> wetLabs = new ArrayList<>();
wetLabRepo.findAll().forEach(wetLabs::add);
return wetLabs;
}
public WetLab getByApiKey(UUID apiKey) {
System.out.println(apiKey);
WetLab wetlabOpt = wetLabRepo.findByApiKey(apiKey);
return wetlabOpt;
// if (wetlabOpt.isPresent()) {
// } else {
// throw new NotFoundException("WetLab not found");
// }
}
}
А это репо
@Repository
public interface WetLabRepository extends CrudRepository<WetLab, Long> {
public WetLab findByApiKey(UUID apiKey);
}
А это класс wetlab
@Entity
@Table(name = "wetlab")
public class WetLab {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "wetLab_seq")
@SequenceGenerator(name = "wetLab_seq", sequenceName = "wetLab_seq", allocationSize = 1)
private Long id;
@Column(name = "apiKey", updatable = true, nullable = false, unique = true, columnDefinition = "BINARY(16)")
@NotNull
private UUID apiKey;
@Column(name = "name", length = 50)
@NotNull
private String name;
@OneToMany
private List<Plot> plot;
// Accessors
public WetLab() {
}
public WetLab(Long id, UUID apiKey, String name) {
this.id = id;
this.apiKey = apiKey;
this.name = name;
}
}
Другой метод работает без ошибок и переменная пути apiKey не равна нулю. Это странно, потому что в других проектах такой подход работал нормально ...
Спасибо