Отображение гибернации списка <byte []> «Не сущность» - PullRequest
0 голосов
/ 03 января 2019

Привет всем спасибо за чтение!

Я использую hibernate и JPA для хранения класса с несколькими аннотированными значениями.Вот один из них:

@ElementCollection(fetch = FetchType.EAGER)
@Fetch(value = FetchMode.SUBSELECT)
private List<byte[]> productThumbnails;

Теперь я пытаюсь оптимизировать операции с базой данных, чтобы 1) не включать миниатюры в запрос.Для этого я использую CriteriaQuery с множественным выбором по всем другим полям

criteriaQuery.multiselect(root.get("id"),root.get("userId"), root.get("price"));

2) Получать только миниатюры через идентификатор

CriteriaBuilder cb = getInstance().getCriteriaBuilder();
CriteriaQuery<byte[]> query = cb.createQuery(byte[].class);
Root<Product> product = query.from(Product.class);
query.multiselect(product.get(Product_.productThumbnails));
TypedQuery<byte[]> typedQuery = getInstance().createQuery(query);
List<byte[]> resultList = typedQuery.getResultList();
resultList.forEach(System.out::println);
getInstance().close();

Для этого я также создал статический класс метамодели:

@StaticMetamodel(Product.class)
public class Product_ {
    public static volatile SingularAttribute<Product, Integer> id;
    public static volatile ListAttribute<Product, List<byte[]>> productThumbnails;
}

Если я сейчас запускаю этот код, я получаю следующую ошибку:

javax.servlet.ServletException: java.lang.IllegalArgumentException: org.hibernate.QueryException: not an entity [select generatedAlias0.productThumbnails from de.adesso.data.Product as generatedAlias0]

Кто-нибудь еще сталкивался с такой проблемой?Любая помощь будет принята с благодарностью!Спасибо!

...