Ich habe viel über @JoinColumn gelesen, aber ich verstehe immer noch nicht die Idee dahinter.Was ist @JoinColumn und wie wird es in Hibernate verwendet?
Patiententisch
CREATE TABLE patient (
patient_id BIGINT NOT NULL,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
PRIMARY KEY(patient_id));
Fahrzeug Tabelle
CREATE TABLE vehicles (
patient_id BIGINT NOT NULL,
vehicle_id BIGINT NOT NULL,
vehicle_manufacturer VARCHAR(255),
PRIMARY KEY (vehicle_id),
CONSTRAINT patienthasmanyvehicle FOREIGN KEY(patient_id) REFERENCES patient(patient_id));
Patient Klasse
@OneToMany(mappedBy = "patient")
private Collection<Vehicle> patientVehicles = new ArrayList<Vehicle>();
Fahrzeugklasse
@ManyToOne
@JoinColumn(name="patient_id")
private Patient patient;
Ich bin wie der Vehicle-Klasse Teil verwirrt, was ist die Beziehung zwischen
Vehicle Class ---- Entity
@JoinColumn(name="patient_id") ---- annotation
private Patient patient ----field
es sagen Hat; Die Fahrzeugeinheit hat eine Fremdschlüssel zu Patientenentität mit dem Namen patient_id. Fügen Sie den patient_id als eine Spalte in der Tabelle Fahrzeug Entity
der Name Parameter des JoinColumn Sie sollten immer ein Fremdschlüssel oder Primärschlüssel sein?
Ich habe das gelesen, aber ich bin immer noch verwirrt. JPA JoinColumn vs mappedBy
verwenden können, aber warum ist, dass die ** patient_id (generierte Spalte, die ein FK ist) ** in der ** Fahrzeug Tabelle ** hat keinen Wert, wenn ich meinen Code ausführen? – zbryan
@zenlloyd Für eine unidirektionale Zuordnung ist es unmöglich. Für eine bidirektionale Es ist normal. –
Gibt es eine Möglichkeit zu überprüfen, dass der Fremdschlüssel (Patient_id in der Tabelle Fahrzeug) tatsächlich in der Patiententabelle zugeordnet ist? – zbryan