java.lang.IllegalArgumentException:参数值[1604438222]与预期类型[java.lang.Integer(n/a)不匹配
我有一个独立的应用程序,在调用“”时出错(尝试从db获取个人id详细信息) 2019-03-01 11:23:34.296错误52000---[nio-8080-exec-1]o.a.c.c.c.[/].[dispatcherServlet]:路径为[]的上下文中Servlet[dispatcherServlet]的Servlet.service()引发异常[请求处理失败;嵌套异常为org.springframework.dao.InvalidDataAccessApiUsageException:参数值[1604438222]与预期类型[java.lang.Integer(n/a)]不匹配;嵌套异常为java.lang.IllegalArgumentException:参数值[1604438222]与预期类型[java.lang.Integer(n/a)]不匹配,并存在根本原因 java.lang.IllegalArgumentException:参数值[1604438222]与预期类型[java.lang.Integer(n/a)]不匹配 在org.hibernate.query.spi.QueryParameterBindingValidator.validate(QueryParameterBindingValidator.java:54)~[hibernate-core-5.3.7.Final.jar:5.3.7.Final] 在org.hibernate.query.spi.QueryParameterBindingValidator.validate(QueryParameterBindingValidator.java:27)~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]java.lang.IllegalArgumentException:参数值[1604438222]与预期类型[java.lang.Integer(n/a)不匹配,java,spring,spring-boot,spring-mvc,spring-boot-jpa,Java,Spring,Spring Boot,Spring Mvc,Spring Boot Jpa,我有一个独立的应用程序,在调用“”时出错(尝试从db获取个人id详细信息) 2019-03-01 11:23:34.296错误52000---[nio-8080-exec-1]o.a.c.c.c.[/].[dispatcherServlet]:路径为[]的上下文中Servlet[dispatcherServlet]的Servlet.service()引发异常[请求处理失败;嵌套异常为org.springframework.dao.InvalidDataAccessApiUsageExceptio
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
PersonRepository personRepository;
@GetMapping("/person/{prsId}")
public Person getPerson(@PathVariable Long prsId) {
return personRepository.findByPrsId(prsId);
}
}
@Repository
public interface PersonRepository extends CrudRepository<Person, Long>
{
Person findByPrsId(Long Id);
}
2147483647
是整数的值。最大值
2304438636
太大,无法包含在Integer
变量中
一般情况下,将
Long
用于您的ID。或者更好的是,原语Long
,因为您的ID在理想情况下永远不应为null
2147483647
是整数的值。最大值
2304438636
太大,无法包含在Integer
变量中
一般情况下,将Long
用于您的ID。或者更好的是,原语Long
,因为您的ID在理想情况下永远不应为null
,您在POJO中使用Integer
,在Repository和Controller中使用Long
。将它们全部更改为使用Integer
或Long
正在POJO中使用Integer
,在Repository and Controller中使用Long
。请将所有应用程序都更改为使用Integer
或Long
,“我有一个独立的应用程序,在调用时出现上下错误…”-这很不幸。你的问题是什么?你将PrsId定义为一个整数,但使用Long来尝试查找它。2304438636也大于最大有符号整数值。“我有一个独立的应用程序,在调用时出现上下错误…”-这很不幸。你的问题是什么?你将PrsId定义为整数,但使用Long来尝试查找它。2304438636也大于最大有符号整数值。
@Entity
@Table(name = "Person")
public class Person {
@Column(name = "Prs_Id")
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer prsId;
@Column(name = "P_Email_Internet_Addr", nullable = true, length = 255)
private String email;
protected Person() {
}
public Integer getPrsId() {
return prsId;
}
public void setPrsId(Integer prsId) {
this.prsId = prsId;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User [prsId=" + prsId + ", email=" + email
+ "]";
}
}