当前位置: 首页 > 知识库问答 >
问题:

参数值[1]与预期类型[java.lang.Boolean]不匹配

施阳曜
2023-03-14

我得到的错误异常线程"main"org.springframework.dao.InvalidDataAccessApiUsageExcture:参数值[1]不匹配预期的类型[java.lang.布尔];嵌套异常是java.lang.IllegalArgumentExc0019:参数值[1]不匹配预期的类型[java.lang.布尔].

我对此感到困惑,因为它来自下面显示的被注释掉的服务方法。当我把它注释掉时,错误就避免了。active列是一个TINYINT(1),即10

实体:

@Entity
@NamedQueries({
        @NamedQuery(name="Workflow.findByUUID", query="SELECT w FROM Workflow w WHERE w.uuid = :uuid"),
        @NamedQuery(name="Workflow.findByActive", query="SELECT w FROM Workflow w WHERE w.active = :active ORDER BY id ASC")
})

我的存储库:

@Repository
public interface WorkflowRepository extends JpaRepository<Workflow, Integer> {
    List<Workflow> findByActive(@Param("active") Integer active);
}

我的服务:

@Service
public class WorkflowService {

    @Autowired
    WorkflowRepository workflowRepository;

    /**
     * Get active workflows
     */
    @Transactional(readOnly = true)
    public List<Workflow> findActive() {
        //return workflowRepository.findByActive(1);
        return null;
    }

当我取消注释时

共有1个答案

赏成益
2023-03-14

您似乎已将工作流.active属性映射为布尔值。因此,您的存储库应该如下所示:

@Repository
public interface WorkflowRepository extends JpaRepository<Workflow, Boolean> {
    List<Workflow> findByActive(@Param("active") Boolean active);
}

调用workflowRepository.findByActive(true)应该按照您希望的方式进行。

事实上,HQL有时会在数据库和Java映射之间产生类型差异,因为在这些环境中键入是不一样的。因此,检查您的实体的活动类型以创建适当的存储库。

 类似资料:
  • 我做错了什么? 正在更新: 我发现了问题所在。问题与ActionRepository中找到的函数有关。函数的签名首先要求两个日期进行比较,然后id和我给出了相反的值。我很清楚,在我上了它之后,我会有一个问题的日期,所以答案确实帮助了我。谢谢大家!

  • 它打印出值的等效,这是因为这一行: 通过调用表示。 那么,如何使Hibernate相信是的实例? 我的枚举是由加载的。而由URLClassLoader加载,由另一个类加载器加载。

  • 我有实体和rest控制器,当我向控制器发出请求时,它会引发以下异常: java.lang.:参数值[1]不匹配预期类型[java.lang.整数(n/a)] 我的控制器: 我的实体具有int类型id:

  • 当我想跑的时候: 我得到: 执行操作“MappingAddAction”的服务异常,java.lang.IllegalArgumentException:参数值[5118]与预期的类型[com.vernuso.trust.server.domain.ClientImport.MappingInfo(N/A)]不匹配 有人能帮助我理解为什么它需要类型而不是类型吗? 我有两个表,如下图所示。Mappi

  • 这是我运行程序时收到的错误: 注:[19533]是我使用的一个测试值。 这是在CustomerServiceBeanImpl.java中出现错误的方法: 在快速检查ERD时,“Customer”表中的“id”列的数据类型为bigint。然而,我不确定这是否重要。(顺便提一下PostgreSQL数据库。) 如何修复此错误?

  • 问题内容: 我收到以下错误 java.lang.IllegalArgumentException: Parameter value [2] did not match expected type [com.cityBike.app.model.User (n/a)] at org.hibernate.jpa.spi.BaseQueryImpl.validateBinding(BaseQueryIm