02_Hibernate_@Table_@Column_@Temporal_@GeneratedValue_Annotations

Merhaba arkadaşlar, bu yazımda bazı notasyonlardan bahsedeceğim. Bu notasyonları örnek üzerinde inceleyelim.

Hibernate.cfg.xml

Hibernate.show_sql => Yapılan işlemlerin konsolda hql kodunu verir.

Hibernate.format_sql => Çıktı olarak verilen kodu sql koda çevirir ve çıktısını verir.

Hibernate.hbm2ddl.auto => Tabloların tekrardan oluşturulması yada güncellenmesi vb. işlemleri yapar.

  • Update => Tablolar varsa günceller. Tablolar yoksa oluşturur.
  • Cretate => Var olan tabloları siler. Tekrardan oluşturur.
  • Create-drop => Veritabanı session sonrası silinir ve sessionda tekrar yüklenir.
  • Validate =>

Test.java

Transaction işlemi başlatıldı ve Person nesnesi yapıcı metot ile oluşturuldu ve save() metodu ile kayıt işlemi yapıldı. Transaction işleme alındı ve kayıt başarılı oldu.

Person.java

@Entity => Sınıfımızı kalıcı hale getirir.

@Table => Table özellikleri belirlenir.

  • Name => Tablo ismi verilir. Eğer bu özellik verilmezse tablomuz sınıfımız ile aynı ismi alır.
  • Catalog =>
  • İndexes =>
  • Schema =>
  • uniqueConstraints =>

@Id => Entity sınıfta olmak zorundadır. id değerini belirtir.

@GeneratedValue => Surrogate key(Vekil anahtar) üretilmesini sağlar.

  • Auto => Veritabanı türüne göre Hibernate kullanacağı yöntemi seçer. Örneğin oracle için sequence yöntemi kullanılırken, mysql için identity kullanılır.
  • Table => Benzersiz key oluşturulmasını takip etmek için ayrı bir Veritabanı tablosu tahsis eder. Table özelliği @TableGenerator notasyonu ile el ele çalışır.
  • Sequence => Oracle, DB2 ve postgres gibi veritabanları kullanır. Oracle kullanırken karışık artıyor.
  • Identity => MySql, Postgres DB2 ve SQL Server veritabanları destekler. Oracle desteklemez.

@Column => Bu notasyon değişkenin tabloda hangi kolona karşılık geldiğini belirtir. Ve sütun özelliklerini verir.

  • Name => Sütun ismini verir. Eğer bu özellik kullanılmazsa değişken ismi ile aynı olur.
  • Nullable => Boş geçilebilir mi? False değeri boş geçilemez yapar.
  • Updatable => Sütunun, kalıcılık sağlayıcısı tarafından oluşturulan SQL UPDATE ifadelerine dâhil edilip edilmediği.
  • İnsertable => Sütunun, kalıcılık sağlayıcısı tarafından oluşturulan SQL INSERT ifadelerine dâhil edilip edilmediği.
  • Length => Uzunluğu belirtir.
  • Unique => Sütunun yalnızca benzersiz değerleri içeren olarak işaretlenmesine izin verir.

@Temporal => Tarih veri tiplerinde kullanılır. Belirtilen formata çevirim yapar.

  • DATE => LocalDate, DATE ile eşlendi
  • TIME =>LocalTime ve OffsetTime, TIME ile eşlenir
  • TIMESTAMP =>Instant, LocalDateTime, OffsetDateTime ve ZonedDateTime, TIMESTAMP ile eşlenir.

Çıktı:

Bu yazımı burada bitiriyorum diğer yazılarımda görüşmek üzere…

Print Friendly, PDF & Email

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.