Angular 冬眠和有角的4+;http get-参数值与预期类型不匹配

Angular 冬眠和有角的4+;http get-参数值与预期类型不匹配,angular,hibernate,http-get,angular-httpclient,Angular,Hibernate,Http Get,Angular Httpclient,我在后端遇到了非常奇怪的行为 在我用angular 4编写的前端,我从后端调用方法,该方法将从特定的数据库表中获取特定组织单元的所有员工。另外,我正在调用一个方法,该方法使用来自后端应用程序的选项填充MatSelect 代码: 后端控制器: @RequestMapping(value = "/orgid/{orgid}", produces = "application/json") public Iterable<Employee> getEmployeeByOrgId(@

我在后端遇到了非常奇怪的行为

在我用angular 4编写的前端,我从后端调用方法,该方法将从特定的数据库表中获取特定组织单元的所有员工。另外,我正在调用一个方法,该方法使用来自后端应用程序的选项填充MatSelect

代码:

后端控制器:

    @RequestMapping(value = "/orgid/{orgid}", produces = "application/json")
public Iterable<Employee> getEmployeeByOrgId(@PathVariable("orgid") String orgid, HttpServletRequest req){
    Iterable<Employee> getEmpByOrgId = eDao.findEmployeesByOrgNameId(orgid);
        return  getEmpByOrgId;
    }
前端html:

  <mat-select placeholder="Choose it">
<mat-option *ngFor="let org of this.orgUnits" [value]="org.value" (click)="fetchAllEmployeesByOrgId(org)">
  {{ org.orgName }}
</mat-option>

{{org.orgName}

单击特定选项时我的url的外观:
employees/orgid/166

问题:

我得到
java.lang.IllegalArgumentException:参数值[166]与预期类型[java.lang.Integer(n/a)]不匹配

如上所述,我希望在后端使用字符串,并且在url中提供字符串

可能是自定义查询内部的问题还是什么?
任何帮助都很好。

问题是
@param
arg作为
字符串注入查询,因此必须更改方法签名:

findEmployeesByOrgNameId(@Param("orgId") Integer orgId)
如果您将
字符串
传递给控制器(您确信可以解析为
整数
),则可以将参数转换为
整数
,然后调用dao方法:

eDao.findEmployeesByOrgNameId(Integer.valueOf(orgid));

员工表中culomn orgId的类型是什么?它是一个数字。我有点困惑,因为在angular 1.x中,它与字符串传递一起工作,@param arg必须是整数:
findEmployeesByOrgNameId(@param(“orgId”)integer orgId)
,并且在控制器中,可以将值解析为整数:
eDao.findEmployeesByOrgNameId(integer.valueOf(orgId))是的,成功了。把它作为答案贴出来。谢谢
  <mat-select placeholder="Choose it">
<mat-option *ngFor="let org of this.orgUnits" [value]="org.value" (click)="fetchAllEmployeesByOrgId(org)">
  {{ org.orgName }}
</mat-option>
findEmployeesByOrgNameId(@Param("orgId") Integer orgId)
eDao.findEmployeesByOrgNameId(Integer.valueOf(orgid));