o que é @JoinColumn e como é usado no Hibernate
Eu tenho lido muito sobre @JoinColumn, mas ainda não entendi a idéia.
Tabela do paciente
CREATE TABLE patient (
patient_id BIGINT NOT NULL,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
PRIMARY KEY(patient_id));
Tabela do veículo
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));
Classe do Paciente
@OneToMany(mappedBy = "patient")
private Collection<Vehicle> patientVehicles = new ArrayList<Vehicle>();
Classe do veículo
@ManyToOne
@JoinColumn(name="patient_id")
private Patient patient;
Estou confuso sobre como a classe Veículo parte, qual é a relação entre
Vehicle Class ---- Entity
@JoinColumn(name="patient_id") ---- annotation
private Patient patient ----field
Isso diz; oEntidade do veículo tem umChave estrangeira paraEntidade do paciente nomeadoPatient_id. Adicione oPatient_id como uma coluna noTabela de entidade do veículo
O parâmetro name do JoinColumn sempre deve ser umChave estrangeira ou chave primária?
Eu tenho lido isso, mas ainda estou confuso.JPA JoinColumn vs mappedBy