Где предложение не работает должным образом: не найдено преобразователя для возвращаемого значения типа: класс java.util.ArrayList - PullRequest
0 голосов
/ 17 января 2019

Я использую Spring MVC Framework с базой данных Postgres и спящим ORM.

Я сталкиваюсь с этой ошибкой:

вложенное исключение - java.lang.IllegalArgumentException: нет конвертера найдено для возвращаемого значения типа: класс java.util.ArrayList] с корнем причиной java.lang.IllegalArgumentException: не найден конвертер для возвращаемое значение типа: класс 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> 

Как мне избежать ошибки?

1 Ответ

0 голосов
/ 17 января 2019

Похоже, ваш запрос написан неправильно. Похоже, вы используете hibernate для получения списка объектов с помощью id деления. Попробуйте написать запрос следующим образом:

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

ID должен иметь тип Long

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

Он должен работать именно так, как вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...