Powiązanie jednokierunkowe za pośrednictwem tabeli dołączania
@Entity
class Patient {
@OneToMany
private Collection<Vehicle> vehicles = new ArrayList<Vehicle>();
}
@Entity
class Vehicle {
}
Powiązanie dwukierunkowe za pośrednictwem tabeli dołączania
@Entity
class Patient {
@OneToMany
private Collection<Vehicle> vehicles = new ArrayList<Vehicle>();
}
@Entity
class Vehicle {
@ManyToOne(fetch = FetchType.LAZY)
private Patient patient;
}
Powiązanie jednokierunkowe za pomocą klucza obcego
@Entity
class Patient {
@OneToMany
@JoinColumn
private Collection<Vehicle> vehicles = new ArrayList<Vehicle>();
}
@Entity
class Vehicle {
}
Powiązanie dwukierunkowe za pomocą klucza obcego
@Entity
class Patient {
@OneToMany(mappedBy = "patient")
private Collection<Vehicle> vehicles = new ArrayList<Vehicle>();
}
@Entity
class Vehicle {
@ManyToOne(fetch = FetchType.LAZY)
private Patient patient;
}
Powiązanie dwukierunkowe za pomocą klucza obcego ze specyfikacją nazwy kolumny obcej
@Entity
class Patient {
@OneToMany(mappedBy = "patient")
private Collection<Vehicle> vehicles = new ArrayList<Vehicle>();
}
@Entity
class Vehicle {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="patient_id")
private Patient patient;
}
To jest podstawowy punkt wyjścia do korzystania z @JoinColumn
.
Aby sprawdzić, czy klucz obcy (patient_id
w Vehicle
table) jest naprawdę odwzorowana w tabeli pacjentów, której możesz użyć @JoinColumn(nullable = false)
@Entity
class Vehicle {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="patient_id", nullable = false)
private Patient patient
}