Spring Boot Entity Oluşturma

Hibernate, Java’da nesnelere veritabanında karşılık gelen tabloları tanımlamak için “Entity” adında bir kavram kullanır. Bu yazıda, Entity’nin nasıl oluşturulduğunu, hangi özelliklere sahip olduğunu ve bu özelliklerin nasıl kullanıldığını ayrıntılı olarak inceleyeceğiz.

Entity, veritabanındaki bir tabloyu temsil eden sınıflara verilen addır. Bu sınıflar, veritabanı tablolarıyla doğrudan ilişkilidir.

Örneğin, veritabanında bir “Person” tablosunuz varsa:

Temel Anotasyonlar

 1  @Entity: Bu anotasyon, bir sınıfın bir veritabanı tablosunu temsil ettiğini belirtir.

 2  @Table: Entity’nin hangi tabloya eşleştiğini belirtir.

 3  @Id: Bir alanın birincil anahtar olduğunu belirtir.

 4  @GeneratedValue: Birincil anahtarın nasıl otomatik olarak oluşturulduğunu belirtir.

Örnek:

Bu örnekte, Person sınıfı person adlı bir veritabanı tablosunu temsil eder ve id alanı bu tablonun birincil anahtarını temsil eder.

İlişkiler

Veritabanlarında farklı tablolar arasında ilişkiler bulunmaktadır. Hibernate, bu ilişkileri temsil etmek için farklı anotasyonlar sunar:

 1  @OneToOne: Tek-tek ilişkiyi temsil eder.

 2  @OneToMany: Tekten çoka ilişkiyi temsil eder.

 3  @ManyToOne: Çoktan teke ilişkiyi temsil eder.

 4  @ManyToMany: Çoktan çoka ilişkiyi temsil eder.

@OneToOne

Bu anotasyon, bir nesne ile başka bir nesne arasındaki tek-tek ilişkiyi temsil eder. Örneğin, her kullanıcının sadece bir profil bilgisi olduğunu düşünelim:

Bu örnekte, User ve Profile arasında tek-tek bir ilişki tanımlandı. Her kullanıcının sadece bir profili olduğunu belirttik.

@OneToMany ve @ManyToOne

@OneToMany anotasyonu tekten çoka, @ManyToOne anotasyonu ise çoktan teke ilişkisini temsil eder. Örneğin, bir yazarın birden fazla kitap yazdığını düşünelim:

Bu örnekte, bir Author’ın birden fazla Book yazabileceğini, ancak her Book’ın sadece bir Author’a sahip olabileceğini belirttik.

@ManyToMany

Bu anotasyon, çoktan çoka ilişkisini temsil eder. Örneğin, bir öğrencinin birden fazla derse kaydolabileceğini, aynı şekilde bir dersin de birden fazla öğrenci tarafından alınabileceğini düşünelim:

Bu örnekte, Student ve Course arasında çoktan çoka bir ilişki tanımladık. Bu ilişki için ek bir student_course isimli birleştirme tablosu oluşturduk.

Diğer Anotasyonlar

 @Column:  Sütunun adını ve diğer özelliklerini (nullable, length vb.) tanımlamak için kullanılır.

 @Transient:  Bir alanın veritabanı tarafından dikkate alınmaması gerektiğini belirtir. Bu alana karşılık gelen bir sütun oluşturulmaz.

Örnek:

Entity oluşturmak, Hibernate’in Java dünyasında veritabanıyla olan ilişkisinin temelidir. Bu yazıda sadece temel kavramlara değindik, ancak Hibernate ile Entity oluşturma konusunda daha birçok detay ve özellik bulunmaktadır. 

Umarım “Spring Boot Entity Oluşturma” başlıklı yazım sizin için faydalı olmuştur.

Şu yazılar da ilginizi çekebilir.

Spring Boot’ta MySQL ile Hibernate Nasıl Kullanılır?

Yeni bir yazımda görüşmek üzere.

Happy coding!

Yorum Yazın