у меня есть сущность продукта со списком складов с этим частично кодом:Список присоединяемой таблицы с критериями
Product.java
@ManyToMany
@JoinTable(name = "product_has_warehouse", joinColumns = @JoinColumn(name = ID), inverseJoinColumns = @JoinColumn(
name = "warehouse_id"), foreignKey = @ForeignKey(name = FK + "has_warehouse"),
inverseForeignKey = @ForeignKey(name = FK + "warehouse"))
private List<Warehouse> warehouses;
Так что мне нужно сделать запрос критерии, чтобы получить список складов по идентификатору продукта.
Я пробовал:
final CriteriaQuery<Warehouse> query = getCriteriaBuilder().createQuery(Warehouse.class);
final Root<Product> root = query.from(Product.class);
final Join<Product, Warehouse> warehouseJoin = root.join("warehouses");
query.where(getCriteriaBuilder().in(warehouseJoin));
final TypedQuery<Warehouse> typedQuery = getEm().createQuery(query);
return typedQuery.getResultList();
Но я получаю: Ошибка проверки достоверности Критерии Вызванные::
java.lang.IllegalArgumentException java.lang.IllegalStateException: Нет явного выбор и неявный не может быть определен