Представьте себе таблицу emp :
CREATE TABLE emp
( id NUMBER
, name VARCHAR
, dept_code VARCHAR
)
и таблица отдел :
CREATE TABLE dept
( code VARCHAR
, name VARCHAR
)
emp.dept_code
ссылается dept.code
как ForeignKey.
Эти таблицы сопоставлены с сущностями JPA, а ForeignKey смоделирован как ассоциация:
@ManyToOne
@JoinColumn(name = "dept_code")
private Department department;
Даны следующие данные:
emp dept
---------------- ------------------
1 John SALS SALS Sales
2 Louis SALS SUPT Support
3 Jack SUPT
4 Lucy SUPT
Я хотел бы написать запрос JPA, который возвращает всех сотрудников в отделе поддержки. Предположим, я знаю PrimaryKey отдела поддержки (SUPT
)
Я думаю, это будет:
SELECT emp
FROM Employee emp JOIN emp.department dept
WHERE dept.code = 'SUPT'
Вопрос:
Так как код отдела SUPT
доступен в таблице emp , есть ли способ переписать запрос JPA , избегая присоединения Департамент образования?
Приведет ли это к повышению производительности? Или реализация JPA (например, Hibernate) достаточно умна, чтобы избежать объединения базы данных с таблицей dept ?