У меня есть веб-приложение, которое подключается к базе данных SQL и имеет несколько сущностей.
Основные таблицы:
- Сотрудники
- EmployeesxSkills ( сопоставление идентификатора определенного сотрудника с идентификатором определенного навыка)
- Умение
- SkillxRole (сопоставление идентификатора навыка с идентификатором роли)
- Роль
Я пытаюсь создать метод, который запрашивает роли на основе введенного пользователем имени, получает идентификатор роли, а затем запрашивает таблицу SkillxRole и возвращает массив строк всех навыков, связанных с этим идентификатором роли. .
Как выполнить запрос в хранилище crud, используя параметр, указанный пользователем. Это будет ввод с использованием html поля ввода с использованием ajax, а затем я предполагаю допустимую конечную точку.
Любая помощь будет принята с благодарностью. Ниже приведен мой код searchController, который я sh запрашиваю в своих репозиториях.
@Controller
public class SearchController {
public EmployeeRepository employeeRepository;
public RoleRepository roleRepository;
public SkillRepository skillRepository;
public roleSkillRatingsRepository roleSkillRatingsRepository;
@Autowired
public void employeeRepository(EmployeeRepository employeeRepository){
this.employeeRepository = employeeRepository;
}
@Autowired
public void roleRepository(RoleRepository roleRepository){
this.roleRepository = roleRepository;
}
@Autowired
public void skillRepository(SkillRepository skillRepository){
this.skillRepository = skillRepository;
}
@Autowired
public void roleSkillRatingsRepository(roleSkillRatingsRepository roleSkillRatingsRepository){
this.roleSkillRatingsRepository = roleSkillRatingsRepository;
}
@ResponseBody
public List<Employee> getAllemployees() {
System.out.println(employeeRepository.findAll());
return employeeRepository.findAll();
}
@ResponseBody
public Map<String,Integer> getRoleSkills() {
return null;
}
Ролевый репозиторий
@Repository
public interface RoleRepository extends CrudRepository<Role, Integer> {
List<Role> findAll();
//something I found online but unsure how to apply this to my situation
@Query("select p from Person AS p"
+ " ,Name AS n"
+ " where p.forename = n.forename "
+ " and p.surname = n.surname"
+ " and n = :name")
String [] findByName(@Param("name") Name name);
}