Вам нужно перестать думать о внешних ключах и начать думать об объекте при использовании JPQL. Давайте внимательнее посмотрим:
select c from Facility c where c.CUSTOMER_FK=:customer_fk
Есть ли у Facility
свойство CUSTOMER_FK
? Нет, поэтому приведенный выше запрос неверен. Следующий:
select c from Facility c where c.customer=:customer_fk
Синтаксически, это правильно. Но ты все еще не думающий объект. Здесь запрос предполагает, что вы передадите экземпляр клиента , а не FK. Таким образом, я бы переписал его так (это - это тот же запрос, но он гораздо лучше передает намерение IMO, и я бы на самом деле избежал любого соглашения foo_fk
, вы на самом деле не манипулируете FK с JPA) :
select c from Facility c where c.customer = :customer
И если вы действительно хотите найти по идентификатору, вы должны перейти по ассоциации и написать:
select c from Facility c where c.customer.id = :id