Поиск и несовместимые типы

#java #ofbiz

#java #ofbiz

Вопрос:

Я пытаюсь использовать метод findbyи.

Это часть моего кода:

 ArrayList<String> orderBy;
orderBy.add("productId");

GenericDelegator delegator = (GenericDelegator) DelegatorFactory.getDelegator("default");
GenericValue product = null;

try {
    product = delegator.findByAnd("Product", UtilMisc.toMap("productName", productName), orderBy, false);
} catch (GenericEntityException e) {
    return Response.serverError().entity(e.toString()).build();
}
  

В этой строке

 product = delegator.findByAnd("Product", UtilMisc.toMap("productName", productName), orderBy, false);
  

Я получаю эту ошибку:

введите описание изображения здесь

Как это исправить? Я не понимаю, как типы могут быть несовместимы в моем коде.

Комментарии:

1. Вы не понимаете, как List<GenericValue> это не a GenericValue ?

2. @Kayaman нет, поскольку я передаю OrderBy в качестве аргумента, который является ArrayList<String>

3. Возможно, вам следует сосредоточиться на том, что получается, а не на том, что происходит.

4. @Kayaman у вас есть решение?

5. Что findByAnd возвращает?

Ответ №1:

Причина, по которой вы получаете эту ошибку, заключается в том, что метод findbyи возвращает список объектов GenericValue, каждое GenericValue представляет строку в таблице Product . Следующий код будет работать:

 List<GenericValue> products = delegator.findByAnd("Product", UtilMisc.toMap("productName", productName), orderBy, false);