qu'est-ce que @JoinColumn et comment il est utilisé dans Hibernate

J'ai lu beaucoup de choses sur les annotations @JoinColumn mais je ne comprends toujours pas l'idée derrière tout cela.

Patient Table

CREATE TABLE patient (
patient_id BIGINT NOT NULL,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
PRIMARY KEY(patient_id));

Véhicule Tableau

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 De Classe

@OneToMany(mappedBy = "patient")
    private Collection<Vehicle> patientVehicles = new ArrayList<Vehicle>();

Catégorie De Véhicule

@ManyToOne
@JoinColumn(name="patient_id")
private Patient patient;

Je suis confus sur la façon dont le Véhicule de classe une partie, quelle est la relation entre

Vehicle Class ---- Entity
@JoinColumn(name="patient_id") ---- annotation
private Patient patient ----field

Dit-elle; Le Véhicule Entité a un Clé Étrangère à Patient entité nommé patient_id.
Ajouter le patient_id comme une colonne dans le Véhicule Entité tableau

Faire le paramètre nom de la JoinColumn devrait toujours être un Clé Étrangère ou de la Clé Primaire?

J'ai lu cela, mais je suis encore à la confusion.
JPA JoinColumn vs mappedBy

source d'informationauteur zbryan