Java 如何查询将参数传递到crud存储库?

Java 如何查询将参数传递到crud存储库?,java,web,spring-repositories,Java,Web,Spring Repositories,我有一个连接到SQL数据库的web应用程序,它有几个实体 主要表格包括: 雇员 EmployeesxSkills(将某个员工的id映射到某个认证技能的id) 技巧 SkillxRole(将技能id映射到角色id) 角色 我试图创建一个方法,该方法根据用户输入的名称查询角色,获取角色id,然后查询SkillxRole表,并返回与该角色id关联的所有技能的字符串数组 如何使用用户指定的参数在crud存储库中进行查询。这将是使用ajax的html输入框输入的,然后我假设一个有效的端点 任何帮助都将不胜

我有一个连接到SQL数据库的web应用程序,它有几个实体

主要表格包括:

  • 雇员
  • EmployeesxSkills(将某个员工的id映射到某个认证技能的id)
  • 技巧
  • SkillxRole(将技能id映射到角色id)
  • 角色
  • 我试图创建一个方法,该方法根据用户输入的名称查询角色,获取角色id,然后查询SkillxRole表,并返回与该角色id关联的所有技能的字符串数组

    如何使用用户指定的参数在crud存储库中进行查询。这将是使用ajax的html输入框输入的,然后我假设一个有效的端点

    任何帮助都将不胜感激。下面是我希望在其中查询存储库的searchController代码

    @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;
            }
    
    
    @控制器
    公共类搜索控制器{
    公共雇员住所;
    公众角色扮演者角色扮演者;
    公共技能库技能库;
    公共角色杀手职责杀手职责;
    @自动连线
    公共无效employeeRepository(employeeRepository employeeRepository){
    this.employeeRepository=employeeRepository;
    }
    @自动连线
    公共无效角色保留(角色保留角色保留){
    this.roleRepository=roleRepository;
    }
    @自动连线
    公共void skillRepository(skillRepository skillRepository){
    this.skillRepository=skillRepository;
    }
    @自动连线
    公开作废角色杀手还原(角色杀手还原角色杀手还原){
    this.roleSkillRatingsRepository=roleSkillRatingsRepository;
    }
    @应答器
    公共列表getAllemployees(){
    System.out.println(employeeRepository.findAll());
    return employeeRepository.findAll();
    }
    @应答器
    公共地图getRoleSkills(){
    返回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);
    
        }
    
    
    @存储库
    公共接口角色还原扩展了CRUDEPository{
    列出findAll();
    //我在网上发现了一些东西,但不确定如何将其应用于我的情况
    @查询(“从人员中选择p作为p”
    +,名称为n
    +“其中p.forename=n.forename”
    +“p.姓=n.姓”
    +“和n=:name”)
    字符串[]findByName(@Param(“name”)name);
    }