Do podstawowych adnotacji należą:
- @Entity
- @Table
- @Id, @GeneratedValue
- @Column
- @OneToOne
- @OneToMany
- @ManyToOne
- @ManyToMany
- @JoinColumn
- @JoinTable
✅ @Entity
deklaruje że dana klasa będzie klasą mapującą tabele relacyjną
@Table(name="car")
public class Car {
✅ @Table
definiuje nazwę tabeli w relacyjnej bazie danych
@Table(name="car")
public class Car {
✅ @Id, @GeneratedValue
definiuje to, że dana kolumna będzie służyła jako id Encji, a wartości dla niej będą generowane automatycznie
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="car_id")
private long carId;
✅ @Column
definiuje nazwę kolumny w tabeli bazodanowej
@Column(name="car_id")
✅ @OneToOne
definiuje relacja miedzy dwoma tabelami "wiele do jednego"
✅ @OneToMany
definiuje relacja miedzy dwoma tabelami "jeden do wielu"
✅ @ManyToOne
definiuje relacja miedzy dwoma tabelami na "wiele do jednego" w relacji dwukierunkowej
@JoinColumn(name="owner_id")
private Owner ownerId;
✅ @ManyToMany
definiuje relacja miedzy dwoma tabelami na bazie "wiele do wielu"
@JoinTable(name = "recipe_ingredient", joinColumns = @JoinColumn(name = "ingredient_id"), inverseJoinColumns = @JoinColumn(name = "recipe_id"))
List<Recipe> recipes;
✅ @JoinColumn
definiuje klucz obcy (Foreign Key) w aktualnej tabeli
@JoinColumn(name="owner_id")
List<Car> cars;
✅ @JoinTabel
adnotacją używana z adnotacją @ManyToMany w celu opisu relacji miedzy tabelami i kolumnami
@ManyToMany(fetch = FetchType.LAZY, cascade = { CascadeType.DETACH, CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH })
@JoinTable(name = "recipe_ingredient", joinColumns = @JoinColumn(name = "ingredient_id"), inverseJoinColumns = @JoinColumn(name = "recipe_id"))
List<Recipe> recipes;
Brak komentarzy:
Prześlij komentarz