zoukankan      html  css  js  c++  java
  • HQL查询 HQL Named parameter [xxx] not set 的解决办法

    org.springframework.dao.InvalidDataAccessResourceUsageException: Named parameter [xxx] not set;

     nested exception is org.hibernate.QueryException: Named parameter [xxx] not set

    翻译过来就是参数未定义/命名,

     1.检查HQL查询语句参数传递方式是否正确,包括createQuery().setParameter的时候,参数名要用双引号包起来

     2.如果是分页查询+条件查询的话,两个查询都要setParameter,

     * 拼字符串的方式传递参数查看语句是否拼接正确

    * 占位符?来传递参数(索引从0开始,传递的值不用单引号/Hibernate自动加了

    :参数名来传递参数,setParameter的时候参数名要用双引号包起来

    * 如果传递多个参数,可以采用setParamterList方法

    3.不要拿HQL当SQL来写,正常HQL的语句是 "form  映射表的类名 where 映射字段的属性名 = :要传递的属性名"

    4.大小写问题,要和映射表的类名保持一致,要不然连表也找不到,报Table is not exist

    还没有解决的话看看扫描路径是否正确

    当传输的值有空时也会报could not locate named parameter(无法定位命名参数)

    找不到实体,在hibernate配置加上packagesToScan的property

    有时候数据库里的字段类型和传递参数类型不匹配也会报错,这个仔细看控制台信息就能看到,改成相应的数据类型即可

     

    学习时的痛苦是暂时的 未学到的痛苦是终生的
    本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    VS2017 C# winform 项目使用 sqlite (二)
    VS2017 C# winform 项目使用 sqlite (一)
    JS权威指南笔记(171页)-this关键字的作用域
    量化交易之下单函数和context对象
    量化交易策略基本框架
    初始量化交易
    金融量化之Tushare模块
    Python之基础算法介绍
    数据分析之Matplotlib和机器学习基础
    数据分析之Pandas
  • 原文地址:https://www.cnblogs.com/juanxincai/p/12365478.html
Copyright © 2011-2022 走看看