JPA olarak Hibernate kullanıyor ve veritabanınızda Türkçe karakter problemi yaşıyorsanız çözümü oldukça kolay. <property name=”hibernate.connection.useUnicode” value=”true” /> <property name=”hibernate.connection.characterEncoding” value=”UTF-8″ /> İfadelerini ekleyerek JPA tarafından oluşan bu sorunu çözebiliriz.
Java projelerimizde daha hızlı ve “gereksiz” gördüğümüz ve maalesef her zaman yapmak zorunda olduğumuz bazı kalıpları yazmaktan Lombok kütüphanesi ile nasıl kurtulduğumuzu göreceğiz. Lombok sayesinde bir Bean’de genellikle olması gereken ve yazmak zorunda olduğumuz kodları yazmamıza gerek kalmadan Lombok’un kendi anotasyonlarını kullanarak çözmeyi sağlamaktadır. Örneğin bir Bean’imizde ki değişkenin Getter ve Setter fonksiyonlarını yazmaktan kurtulacağız. […]
Java projenizi veritabanı işlemlerinizi JPA kullanarak yapıyorsanız ve veritabanınız PostgreSQL ise bu hatayı alıyorsanız doğru yerdesiniz. İlk olarak en kökten çözümü söyleyeyim PostgreSQL kullanmazsanız bu sorun çözülür. :p Tabiki öyle bir şey yapmayacağız. Bu hatanın neden kaynaklandığını söyleyeyim PostgreSQL’in yasaklı kelimeler listesi var ve biz PostgreSQL kullanıyorsak user adında bir tablo oluşturamayız. Güvenlik olarak bu […]
Primefaces ile listemizi sıralı olarak göstermek için kullanılan yöntem datatable bileşinidir. Bu bileşen çok marifetli ve farklı kullanımlarını Primefaces Showcase sitesinden incelemek mümkün. Bu yazıda Primefaces Showcase’de de yer alan Datatable bölümünde olan Subtable bileşinine ve Subtable kullanarak bir çıktı almak istersek ne yapmak gerekir bunu anlatmaya çalışacağım. Subtable bileşinini genellikle bir listenizin içerisinde bir […]
Hibernate Dersleri‘ne devam ediyoruz. Hibernate ile yazılımız ile veritabanı arasındaki sistem yönetimi işlemleri xml dosyasından yönetebileceğimiz bir özelliktir C3P0. C3P0 Hibernate ile C3P0 sayesinde tüm veritabanları ile uyumludur. C3P0 kullanmak için pom.xml’e eklemiz yeterlidir. <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-c3p0</artifactId> <version>5.2.10.Final</version> </dependency> Hibernate yapılandırma dosyası aşağıdaki gibi olmaktadır. <property name=”hibernate.connection.provider_class”>org.hibernate.connection.C3P0ConnectionProvider</property> <property name=”hibernate.c3p0.max_statements”>30</property> <property name=”hibernate.c3p0.min_size”>10</property> <property name=”hibernate.c3p0.max_size”>45</property> <property name=”hibernate.c3p0.timeout”>1</property> <property name=”hibernate.c3p0.acquire_increment”>1</property> […]
Hibernate Dersleri‘ne devam ediyoruz. Önceki derslerde HQL yapısına ve NamedQuery kullarak sorgu yaptık. Bu yazıda ise Criteria Queries kullanımına bakacağız. Criteria Queries adından da anlaşıldığı gibi sorgularımızı kriterler ekleyerek bir sorgulama yöntemidir. Her dersimizde olduğu gibi Üye örneğimizden gidelim. Üye sınıfımızı tekrar yazalım. @Entity public class Uye implements Serializable { private int uyeId; private String […]
Hibernate Dersleri‘ne devam ediyoruz. Önceki derslerimizde veritabanı ilişkilerinde kullandığımız One To One, One To Many ve Many To One yöntemlerinde tablolar arasında bir ara tablo oluşturulmakta idi. @Embeddable ve @Embedded anotasyonları kullanarak ara tablo oluşturmaya gerek kalmadan “gömmek” istediğimiz persist sınıfımıza eklememiz yeterli olmaktadır. Java nesnesi tarafından farklı sınıflar ile yönettiğimiz alanları, veritabanı olarak aynı […]
Hibernate Dersleri‘ne devam ediyoruz. Önceki derslerde HQL’in ne olduğundan bahsetmiştim(HQL Nedir?). HQL kullanarak isteğe özel sorgular yazabiliyorduk. Bu isteğe özel sorguların daha derli toplu bir şekilde olması, yazımı ve yönetimini kolaylaştırması açısından oldukça önemli. Kodlar içerisinde sorgu değişiklikleri her sınıfın üzerindeki blok üzerinden yapabiliyoruz. Bu sorguya bir isim vererek diğer yerlerden kullanabiliyoruz. @Entity @Table(name = “uye”) […]
Hibernate Dersleri‘ne devam ediyoruz. Önceki derslerde işlediğimiz ilişki çeşitlerinde cascade=CascadeType.ALL gibi ifadeler kullandık. Bu cascade dediğimiz niteliğin ne olduğuna ve çeşitlerinden bahsedeceğiz. Cascade JPA standartıdır. Java sınıflarımızdaki ilişkilerin davranışlarını cascade niteliğini kullanarak ayarlarız. “İlişki davranışları” kavramını biraz açıklayacak olursak, bir değer silinirse o veri ile ilişkili olan kayıtların etkilenmesini ya da etkilenmemesi işlemlerini Java nesneleri olarak yönetilmesini […]
Hibernate Dersleri‘ne devam ediyoruz. Bu yazıda veritabanı ilişkilerinden çoka çok ilişkiyi inceleyeğiz. Çoka çok ilişkinin Hibernate ile olan yapısı için bir senaryo gerçekleştireceğiz. Bu senaryoda yazar ve kitaplar bulunmaktadır. @Entity public class Yazar { private Long yazarId; private String yazarAdi; @Id @GeneratedValue(strategy=GenerationType.AUTO) public Long getYazarId() { return yazarId; } public void setYazarId(Long yazarId) { this.yazarId […]