Я пытаюсь написать JPQL-запрос, чтобы получить список ингредиентов пиццы из следующих таблиц
pizza
+----+----------------+------+------------+--------------+
| id | nom | prix | disponible | categorie_id |
+----+----------------+------+------------+--------------+
| 1 | Margherita | 950 | 1 | 1 |
| 2 | Regina | 1200 | 1 | 1 |
| 3 | Trois fromages | 1450 | 1 | 1 |
+----+----------------+------+------------+--------------+
ingredient
+----+-------------------+
| id | nom |
+----+-------------------+
| 1 | fromage |
| 2 | jambon |
| 3 | champignons |
+----+-------------------+
pizza_ingredient
+----------+---------------+
| pizza_id | ingredient_id |
+----------+---------------+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 2 | 2 |
| 2 | 3 |
+----------+---------------+
Из следующих объектов
Пицца. java
@Entity
public class Pizza {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
private Categorie categorie;
@OneToMany
@JoinTable(name = "pizza_ingredient",
joinColumns = @JoinColumn(name = "pizza_id"),
inverseJoinColumns = @JoinColumn(name = "ingredient_id"))
private List<Ingredient> ingredients = new ArrayList<>();
Ингредиент. java
@Entity
public class Ingredient {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
private Pizza pizza;
Я пробовал несколько запросов, но в том числе следующие, но я продолжаю получать java.sql.SQLSyntaxErrorException
или подобные ошибки
public List<Ingredient> findIngredients(String pizzaNom) {
return em.createQuery("SELECT i FROM Pizza p RIGHT JOIN p.ingredient i WHERE i.id = p.id ", Ingredient.class)
.getResultList();
}
Мне пока не очень комфортно работать с запросами на соединение и jpql, поэтому все ресурсы, которые я нашел в Интернете до сих пор, еще больше запутали меня в том, что делать. Любая помощь или ресурсы будут оценены.