Я пытаюсь создать запрос с двухуровневой ссылкой, которая будет возвращать предложения.
Уже я использую метод createQueryBuilder, в любом случае мой запрос выглядит очень хорошо.Но у меня все еще есть эта проблема:
[Семантическая ошибка] строка 0, столбец 47 рядом с 'CarManufacturer': Ошибка: У класса App \ Entity \ Offer нет поля или ассоциации с именем model.CarManufacturer
//$manufacturer - string from GET
public function getOffersByManufacturer($manufacturer):
{
return $this->em->getRepository(Offer::class)
->createQueryBuilder('p')
->select('p')
->andWhere('p.model.CarManufacturer = :manufacturer')
->setParameter('manufacturer', $manufacturer)
->getQuery()
->execute();
}
В любом случае предложение Table имеет внешний ключ (ManyToOne) для Model, а следующая модель (Entity) имеет внешний ключ (ManyToOne) для CarManufacturer (Entity)
Я хотел бы получить что-токак это с помощью пружины
public List<Offer> getOffersByManufacturer(int manuacturerId):
{
String jpql = "select o from Offer o where o.carModel.manufacturer.id = :id order by o.title";
TypedQuery<Offer> query = em.createQuery(jpql, Offer.class);
query.setParameter("id", manuacturerId);
return query.getResultList();
}