Мне нужно получить регистр по полю, отличному от ID, int и уникального файла с именем "rut_num", но я получаю сообщение об ошибке в запросе к репозиторию:
Entity:
@Entity
@Table(name="paciente")
public class Paciente {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
@Column(name="rut_num")
private int rut_num;
@Column(name="nombre")
private String nombre;
@Column(name="a_pat")
private String a_pat;
@Column(name="a_mat")
private String a_mat;
//getters and setters
Репозиторий:
@Repository("pacienteRepository")
public interface PacienteJpaRepository extends JpaRepository<Paciente, Serializable> {
@Query("SELECT nombre FROM paciente WHERE rut_num= :rut_num")
Future<String> findByRut(@Param("rut_num") int rut_num);
}
Сервис и Impl:
public interface PacienteService {
public abstract Paciente findByRut(int rut_num);
}
@Service("pacienteServiceImpl")
public class PacienteServiceImpl implements PacienteService {
@Autowired
@Qualifier("pacienteRepository")
private PacienteJpaRepository pacienteRepository;
@Override
public Paciente findByRut(int rut_num) {
return (Paciente) pacienteRepository.findByRut(rut_num);
}
}
Контроллер:
@Controller
public class PacienteController {
@Autowired
@Qualifier("pacienteServiceImpl")
private PacienteService pacienteService;
@RequestMapping(value = "/paciente/{rut_num}", method = RequestMethod.GET, headers = "Accept=application/json")
public ResponseEntity<Paciente> findByRut(@PathVariable("rut_num") int rut_num){
Paciente paciente = pacienteService.findByRut(rut_num);
if (paciente == null) {
return new ResponseEntity(HttpStatus.NOT_FOUND);
// You many decide to return HttpStatus.NOT_FOUND
}
return new ResponseEntity<Paciente>(paciente, HttpStatus.OK);
}
}
Ошибка в консоли:
Ошибка создания компонента с именем 'pacienteServiceImpl': неудовлетворенная зависимость, выраженная через поле 'pacienteRepository'; вложенное исключение: org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем 'pacienteRepository': сбой вызова метода init; вложенное исключение: java .lang.IllegalArgumentException: проверка не удалась для запроса метода publi c abstract java .util.concurrent.Future com.calendar.repository.PacienteJpaRepository.findByRut (int)!