Весенние данные jpa выбирают не все записи - PullRequest
0 голосов
/ 05 июля 2018

Я новичок в Hibernate, и я не хочу выяснять некоторые механизмы. У меня есть сущность:

@Entity
@Table(name = "dish")
public class Dish implements Serializable {

   @ManyToMany(fetch = FetchType.LAZY)
   private List<Ingredient> ingredients;

   @ManyToOne(fetch = FetchType.LAZY)
   private Category category;
}

И хранилище с таким методом:

@Query("select d from Dish d join fetch d.ingredients")
    Set<Dish> getDishesWithIngredientsAndCategory();

И я заметил, что этим методом я извлекаю только Блюда, которые связаны с ингредиентами. Я понятия не имею, как получить все блюда, даже если в них нет ингредиентов? И второй вопрос : возможно ли объединить в одной @Query выборке два столбца? Что-то вроде:

@Query("select d from Dish d join fetch d.ingredients, d.category")

Я пытался использовать такой запрос, но я получаю QuerySelectionException : "d.category not mapped".

1 Ответ

0 голосов
/ 05 июля 2018

что я получаю этим методом только блюда, которые связаны ингредиенты.

Используйте Left Join вместо объединения: @Query("select d from Dish d left join fetch d.ingredients")

И второй вопрос: можно ли объединить в один пакет @Query две колонки? Вы можете попробовать это:

@Query("select d from Dish d join fetch d.ingredients join fetch d.category")

...