Stellen Sie sich einen Tisch emp:JPA Abfrageoptimierung durch Vermeidung von JOIN in Lookup-Tabelle?
CREATE TABLE emp
(id NUMBER
, name VARCHAR
, dept_code VARCHAR
)
und einen Tisch dept:
CREATE TABLE dept
(code VARCHAR
, name VARCHAR
)
emp.dept_code
Referenzen dept.code
als ForeignKey.
Diese Tabellen sind auf JPA Entities zugewiesen und das ForeignKey als Verein modelliert:
@ManyToOne
@JoinColumn(name = "dept_code")
private Department department;
Gegeben folgende Daten:
emp dept
---------------- ------------------
1 John SALS SALS Sales
2 Louis SALS SUPT Support
3 Jack SUPT
4 Lucy SUPT
Ich möchte eine JPA-Abfrage schreiben, die alle zurückgibt Mitarbeiter in der Support-Abteilung. Es sei angenommen, ich die PrimaryKey der Support-Abteilung kennen (SUPT
)
ich denke, das wäre:
SELECT emp
FROM Employee emp JOIN emp.department dept
WHERE dept.code = 'SUPT'
Frage:
Als der Abteilung Schlüssel SUPT
-Code ist in der verfügbar emp Tabelle, gibt es eine Möglichkeit zum Umschreiben der JPA-Abfrage durch Vermeiden der JOIN der Abteilung Entität?
Würde dies zu einer Leistungsverbesserung führen? Oder ist eine JPA-Implementierung (wie Hibernate) intelligent genug, um die Datenbankverbindung zur -Abteilung zu vermeiden?