Entity classlar oluşturuldukları isimde, kullandığımız veritabanında bir tablo oluştururlar ve class'ın içinde ki nesneler'de veri tabanındaki o tabloya kolon,alan olarak eklenir.
Eğer tablodaki isminin Entity ismi ile aynı olmasını istemiyorsak;
@Table(name="konulacak_Isim") annotation'ını Entity class'ın başında tanımlarız.
Mesala Öğrenci isimli bir class'ımız olsun.
--
public class Ogrenci{
private String ad;
private String soyad;
//Getter Setter
}
--
Bu normal oluşturulmuş ad ve soyad bilgilerini tutan bir class'tır. Fakat ben bu class'taki alanları veri tabanına da eklemek istiyorum.
Entity class oluşturmak için gerekli olan şartlar;
* Classın başına @Entity annotation'ı eklenmeli
* Serializable implements edilmeli
* Bir identy (id) icermeli ve o id'nin başına da @Id ve @GeneratedValue annotation'ı eklenmeli
@Id : O nesnenin ID olacagını belirtir.
@GeneratedValue : Id' değerinin otomatik olarak artacağını belirtir
---
@Table(name="ogr")
@Entity
public class Ogrenci{
@Id @GeneratedValue
private Long id;
private String ad;
private String soyad;
//Getter Setter
}
@Transient
Entity class'ımıza eklediğimiz herhangi bir nesnesin vertabanında bir karşılığı olmasını istemiyorsak, veri tabanına eklenmesini istemiyorsak o nesnenin başına @Transient annotation'ını eklememiz yeterli olacaktır.
@Entity
public class Ogrenci{
@Id @GeneratedValue
private Long id;
private String ad;
private String soyad;
@Transient
private String ogretmeni;
//Getter Setter
}
Hiç yorum yok:
Yorum Gönder