【问题标题】:Where clause is not working properly : No converter found for return value of type: class java.util.ArrayListWhere 子句无法正常工作:未找到类型返回值的转换器:类 java.util.ArrayList
【发布时间】:2019-01-17 07:05:29
【问题描述】:

我正在使用带有 postgres 数据库和休眠 ORM 的 spring mvc 框架。

我遇到了这个错误:

嵌套异常是 java.lang.IllegalArgumentException: No converter 找到类型的返回值:类 java.util.ArrayList] 与根 导致 java.lang.IllegalArgumentException: No converter found for 返回值类型:class java.util.ArrayList

这是我的控制器:

@ResponseBody
    @RequestMapping("/ajaxmethod/getdistrict")
    public List<District> getDistrict(HttpServletRequest request){

        System.out.println("request:" + request.toString());
        String division = request.getParameter("division");
        System.out.println("division::::::::::::::::::::::::::::::::::::::::::" + division );
        List<District> districtlist = this.upazillaService.listDistricts(division);

        return districtlist;
    }

这是我的 DAO:

@SuppressWarnings("unchecked")
    @Override
    public List<District> listdistricts(String division) {
        Session session = this.sessionFactory.getCurrentSession();
        Query query = session.createQuery("from District where division_id=:division");
        query.setParameter("division", Integer.parseInt(division));
        System.out.println( " query::::::::::::::::::::::: " + query.toString());
        List<District> districtList = query.list();
        for (District p : districtList) {
            logger.info("district List::" + p);
        }
      //  session.clear();
        return districtList;
    }

这是我的模特:

@ManyToOne
    @JoinColumn(name = "division_id", referencedColumnName = "id")
    private Division division;

这是 jquery:

 <script type='text/javascript'>
        $( document ).ready(function() {
              $("#district").prop("disabled", true);

              $("#division").change(function () {
                  var division =jQuery("#division option:selected").val();
                    console.log(division);
                    $("#district").prop("disabled", false); 
                $.ajax({
                     type: "POST",
                     url: "/farmvill/ajaxmethod/getdistrict",
                     data: {division: division},
                     success: function (data) {
                        console.log("success");
                     },
                     error: function (e) {
                        console.log(e);
                     }         
            });  
              });
        });
</script> 

如何避免错误?

【问题讨论】:

  • 您的结果集没有正确映射到List&lt;District&gt;。可能您应该在查询时使用对您的数据库对象District 的引用作为参数。
  • @AtaurRahmanMunna 你能用任何例子正确地解释一下吗?我无法理解。对不起。

标签: jquery postgresql hibernate spring-mvc jsp


【解决方案1】:

您的查询似乎没有以正确的方式编写。看起来您正在使用休眠来使用除法的 id 检索对象列表。尝试这样写查询:

FROM District a WHERE a.division.id =:division

ID应该是Long类型

query.setParameter("division", Long.parseLong(division));

它应该完全按照你想要的方式运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-04
    • 2019-12-18
    • 2018-11-02
    • 2017-04-06
    相关资源
    最近更新 更多