Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
参数值[1]与预期类型[java.lang.Boolean]不匹配_Java_Spring_Hql - Fatal编程技术网

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

参数值[1]与预期类型[java.lang.Boolean]不匹配,java,spring,hql,Java,Spring,Hql,我在线程“main”org.springframework.dao.InvalidDataAccessApiUsageException中得到错误异常:参数值[1]与预期类型[java.lang.Boolean]不匹配;嵌套异常为java.lang.IllegalArgumentException:参数值[1]与预期类型[java.lang.Boolean]不匹配。 我对此感到困惑,因为它来自下面显示的被注释掉的服务方法。当我把它注释掉时,错误就避免了。active列是一个TINYINT(1),

我在线程“main”org.springframework.dao.InvalidDataAccessApiUsageException中得到错误
异常:参数值[1]与预期类型[java.lang.Boolean]不匹配;嵌套异常为java.lang.IllegalArgumentException:参数值[1]与预期类型[java.lang.Boolean]不匹配。

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

实体:

@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);
}
@存储库
公共接口WorkflowRepository扩展了JpaRepository{
列表findByActive(@Param(“active”)整数active);
}
我的服务:

@Service
public class WorkflowService {

    @Autowired
    WorkflowRepository workflowRepository;

    /**
     * Get active workflows
     */
    @Transactional(readOnly = true)
    public List<Workflow> findActive() {
        //return workflowRepository.findByActive(1);
        return null;
    }
@服务
公共类工作流服务{
@自动连线
WorkflowRepository WorkflowRepository;
/**
*获取活动工作流
*/
@事务(只读=真)
公共列表findActive(){
//返回workflowRepository.findByActive(1);
返回null;
}

当我取消注释时

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

@Repository
public interface WorkflowRepository extends JpaRepository<Workflow, Boolean> {
    List<Workflow> findByActive(@Param("active") Boolean active);
}
@存储库
公共接口WorkflowRepository扩展了JpaRepository{
列表findByActive(@Param(“active”)布尔值active);
}
调用
workflowRepository.findByActive(true)
应该按照您希望的方式进行


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

对于JPA实体而言,参数是布尔值。问题被标记为
HQL
:-),java中没有Tinyint。
@NamedQueries
是java持久性语言,我想.blint,
@Param(“active”)
注释的目的是什么?@AlexanderSuraphel
@Param
允许您在目标查询中配置参数的名称。我以为不需要它。我正在做类似的事情。