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…