Arşiv

0, 2011 için arşiv

Yaşama sevincini hiç yere tüketmek

Salı, 09 Ağu 2011 2 yorum

Mevzuya nereden girsem kestiremedim aslında. Şöyle gireyim madem.

Hayatın hemen heryerinde hepimizin yaşadığı, şahit olduğu bir dolu sinir bozucu, isyana teşvik ettirici hadiselerden bahsedesim geldi. Hani ortalama bir asabiyete sahip insan günde 100 birim sinirlenip, öfkeleniyorsa 50 sini bunlara harcıyorum. Herbiri hakkında bir dolu şey yazılabilir aslında. Lakin ki herbirine ayrı enerji harcamak istemiyorum. Varlıkları ile, oluşları ile bir sevincin kırılmasına, bir umudun yitmesine başlı başına sebepler zaten. İnsanlığa, iyiliğe, dünyanın daha yaşanabilir olabileceğine dair inancını zedeliyor insanın. Küçük gibi gözüküyor, belki bir dolu insan “amaan canım sende” diyebiliyor. Ya da belki ben havadan nem kapıyorum, kimileri yağmurun altında dahi ıslanmazken.

Daha siz araca binmeden “nereye abi” diyen taksi şoförleri, İstanbul gibi bir şehirde trafiğe takılmadan şöyle 15 dakikada 40 lira hasılat yapmak iştahını gizlemeye dahi tenezzül etmeyen taksi şoförleri, yine bu durumlarda birkaç kelime söylediğinizde “ekmek parası” klişesinin arkasına saklanmayı bir halt sanan, kutsal bilen taksi şoförleri, halk otobüsünü ralli aracı gibi kullanan halk otobüsü şoförleri ve bu duruma zerre tepki vermeyen yolcu topluluğu, evinin çöpünü balkondan sokağa hiç aymadan, utanmadan fırlatabilen ev hanımları, gecenin bir vakti mahalle halkına bangır bangır 3.parti arabesk veya tekno müzik konseri veren bitirimden bozma gençlik, kaldırımları babasının çiftliği, evinin kileri gibi kullanıp işgaller işgali yapan, vurdumduymazlıkta sınır tanımayan esnaf, dekolte işini teşhirden de öteye taşıyan özgürlüğün ne olduğundan bihaber olduğu halde “özgürlük” kelimesi arkasına sığınan hatun kişiler, otobüsten inen yolculara alenen yolunacak kaz muamelesi yapan şehirlerarası dinlenme tesisleri, yolda gördüğünde halini hatrını sormak nezaketini dahi göstermeden “şu bizim oğlanın bilgisayara bi baksana” diyen yer ve zamana göre komşulaşanlar, bütün türk halk müziği enstrümanlarını kullanarak ilahi dile getirdiğini sanıp insanların dini hassasiyetlerini ve duygularını acıklı bir ezginin peşinde sürüklemeye çalışanlar, dinle kitapla alakası olmadığı halde islam alimiymişcesine, yüzyıllar boyu yaşamış, aşmış bir din, iman ve tasavvuf bilgisine, hikmetine sahip İslam alimlerini hiçe sayıp her Ramazan ayında kendince makul veya mantıklı bulmadığı dini bir meseleye çözüm ürettiği sanan akla tapıcı, mantığa seccade sericiler…Ve daha neler neler…

Askere gitmeden evvel çokça duyulur etraftan. Ya da nizamiyeden içeri girdiğinizden gerçeği kavrayana kadar bir tabur asker şunu söyler size; “Burda şalterleri kapatacaksın”. O kadar yerindedir bir tabirdir ki, askeri disiplin içindeyken bir dolu saçmasalak işleri, vurdumduymazlıkları, olmazları, olamazları ve olmamalıları üzerinizden teğet geçtirmenin tek yoludur belki de. Şalterleri kapatmalıyım galiba devreyi yakmadan.

Vaktiyle Cem Karaca ne güzel söylemiş ; “Beni siz delirttiniz

Facebooktwittergoogle_pluslinkedinmailFacebooktwittergoogle_pluslinkedinmail

Hibernate dynamic-insert, dynamic-update

Cumartesi, 06 Ağu 2011 Yorum yapılmamış

Hibernate’in bir kullanılabilir özelliği daha; dynamic-insert, dynamic-update : )

dynamic-update : Güncelleme sql ifadesini(update sql) çalışma zamanında sadece değişen kolonlara göre dinamik olarak oluşturur.
dynamic-insert : Kayıt ekleme sql ifadesini(insert sql) çalışma zamanında sadece veri girilmiş kolonlara göre dinamik olarak oluşturur.

Şöyle ki;

@Entity
@Table(name = "PERSONEL")
@org.hibernate.annotations.Entity(dynamicInsert=true,dynamicUpdate=true)
public class PERSONEL{
...
...
...
}

Sadece AD, SOYAD ve TC_KIMLIK_NO alanlarının girildiği bir kayıt işlemi sonrası

INSERT INTO PERSONEL(AD, SOYAD, PERSONEL_NO, TC_KIMLIK_NO, YAS, CINSIYET, DOGUM_TARIHI)  VALUES (?, ?, ?, ?, ?, ?, ?)

gibi bir sql ifadesi oluşması yerine

INSERT INTO PERSONEL(AD, SOYAD, TC_KIMLIK_NO)  VALUES (?, ?, ?)

gibi sadece veri girilmiş alanların dahil edildiği bir sql ifadesi oluşuyor.

Performans açısından ise şöyle bir ters orantı var. Normal koşullarda Hibernate her varlık sınıfı için üretilen ekleme , güncelleme, sorgulama sql ifadelerini belleğine alır. Böylece her ekleme, güncelleme, sorgulama işlemi için bir sql ifadesi oluşturması gerekmez. Bu performans açısından bir artı getirir. Amma lakin ki bu özellik aktif hale getirildiğinde de her ekleme, güncelleme işlemi için bir sql ifadesi oluşturma işi çıkıyor ortaya. Dolayısıyla çok fazla kolon içeren tablolar için çalıştırılacak sql ifadesini minumuma indirerek performans açısından bir artı getirebilse de diğer durumlar için karar vermek gerekiyor, bu özelliği aktif yapıp yapmamaya.

Facebooktwittergoogle_pluslinkedinmailFacebooktwittergoogle_pluslinkedinmail

Hibernate @SqlDelete

Cumartesi, 06 Ağu 2011 Yorum yapılmamış

Hibernate’in yeni keşfettiğim bir özelliği varlık sınıflarına uygulanabilen @SqlDelete, @SqlUpdate, @SqlInsert bildirimleri. Bu sayede ilgili varlık sınıflarını kaydetme, güncelleme ve silme işlemleri sırasında hangi sql ifadesinin çalışacağını belirleyebiliyoruz. Bir nevi EntityManager sınıfının persist, merge ve remove metotları sonucu oluşacak olan ekleme, güncelleme ve silme sql ifadelerini ezmiş oluyoruz. Özellikle silme işlemi için oldukça faydalı olabilir diye düşündüm.

Mesela; Hesap nesnelerini karşılayan Hesap sınıfları için ne zaman entityManager.remove(herhangiBirHesap) desek, bu nesneyi fiziksel olarak silmek yerine mantıksal olarak durumunu pasif yapmak isteyebiliriz. “Soft delete” olarak bilinen durum yani. Bu gibi durumlar için proje genelinde bir kod tasarrufu ve temizliği sağlanabilir gibi.

Ayrıca sınıf tanımında kullanılacak @Where bildirimi ile de veritabanından Hesap tablosuna sorgu atan sql ifadelerine bir koşul konulabiliyor. Böylece de durumunu pasif yaptığımız nesneler sorgu sonuçlarında gelmiyor. Bu yazılan sql ifadeleri için hql kullanılamıyor bu arada, sql yazmak gerekiyor.

Şöyle ki;

@Entity
@Table(name = “HESAP”)
@SQLDelete(sql=”update HESAP set DURUM=0 WHERE ID=?”)
@Where(clause=”DURUM <>0″)
public class Hesap {



}

Facebooktwittergoogle_pluslinkedinmailFacebooktwittergoogle_pluslinkedinmail