Podstawowe adnotacje

Do podstawowych adnotacji należą:





✅ @Entity

deklaruje że dana klasa będzie klasą mapującą tabele relacyjną

@Entity
@Table(name="car")
public class Car {
...
}



✅ @Table

definiuje nazwę tabeli w relacyjnej bazie danych

@Entity
@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

@Id
@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"

@OneToOne(cascade= CascadeType.ALL)
@JoinColumn(name="company_detail_id")
private CompanyDetail companyDetail;



✅ @OneToMany

definiuje relacja miedzy dwoma tabelami "jeden do wielu"

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name="owner_id")
List<Car> cars;



✅ @ManyToOne

definiuje relacja miedzy dwoma tabelami na "wiele do jednego" w relacji dwukierunkowej

@ManyToOne(cascade= { CascadeType.DETACH, CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH })
@JoinColumn(name="owner_id")
private Owner ownerId;



✅ @ManyToMany

definiuje relacja miedzy dwoma tabelami na bazie "wiele do wielu"

@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;



✅ @JoinColumn

definiuje klucz obcy (Foreign Key) w aktualnej tabeli

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@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