参数值[0]与预期的类型[java.lang.Integer]不匹配

参数值[0]与预期的类型[java.lang.Integer]不匹配,java,spring,jpa,stored-procedures,hql,Java,Spring,Jpa,Stored Procedures,Hql,有趣的问题是,我传入一个int,它抱怨它与类型不匹配: org.springframework.dao.InvalidDataAccessApiUsageException:参数值[0]与预期类型[java.lang.Integer]不匹配。 @Procedure(procedureName = "dbo.do_cool_stuff_to_client") void coolClientStuff(int clientId); 人们这样称呼它: public void someOtherMet

有趣的问题是,我传入一个
int
,它抱怨它与类型不匹配:

org.springframework.dao.InvalidDataAccessApiUsageException:参数值[0]与预期类型[java.lang.Integer]不匹配。

@Procedure(procedureName = "dbo.do_cool_stuff_to_client")
void coolClientStuff(int clientId);
人们这样称呼它:

public void someOtherMethod(int clientId){
  clientRepository.coolClientStuff(clientId);
}

结果发现它有一些愚蠢/古怪的地方,它真的希望我把它放在类类型中,而不是原始类型中

将方法签名更改为使用
Integer
而不是
int
修复了它

@Procedure(procedureName = "dbo.do_cool_stuff_to_client")
void coolClientStuff(Integer clientId);

在阅读
expected类型[java.lang.Integer]
之后,我希望参数是
Integer
。是否有其他的
@过程
情况会使用int代替整数?我不熟悉这个注释,它很奇怪;这真的不要紧,因为自动装箱应该解决它。也许当Spring使用反射时,它不考虑使用图元而不是包装类型的可能性吗?它可能会检查参数的类是否仅为
==Integer.class
,而不考虑
int.class
。是的,异常使我切换它并使其工作,这很奇怪,因为我本来希望它与原语类型配合得很好,因为这一直都在使用。