Ozgur web-gunleri-sunum

Embed Size (px)

Citation preview

Biliim Ynetim Sistemi Uygulama Platformu

Kurumsal Varlklarn Hibernate ile Modellenmesi

Fehmi Can SALAM10/2010

Ama

Geniletilebilir/srdrlebilir kurumsal uygulamalar elde etmek iin tanr, kullanc/mteri, dosya, rn, yazlm, sunucu gibi kurumsal varlklarn Hibernate ile etkin olarak modellenmesi

Ana Hatlar

Java ile kaltm(inheritance) ve ok biimlilik(polymorphism)

Hibernate atsnn Kaltm Eleme(inheritance mapping) zellikleri

Varsaymsal bir kurumun varlklarnn modellenmesi

Kaltm(Inheritance)

Kaltm bir snfn baka bir snfn yelerini ve metodlarn kendi ilevlerini de ekleyerek kullanabilmesidir.

Bu zelliin kullanl olabilecei bir duruma rnek olarak bir ekil ktphanesi verilebilir. Tm ekiller iin ortak olan zellikleri genel bir snfta toplayp ember, dikdrtgen gibi zel ekiller iin ayr snflar oluturabilirsiniz.

Kaltm(Inheritance)

Genel snf taban snf olarak adlandrlrken, zel snflara alt snflar denir.

Kaltm kodun yeniden kullanlabilirliini byk oranda artrrken tasarmn daha basit ve anlalr olmasn salar.

rnek

Hibernate Kaltm Eleme

Table per class hierarchy

Table per subclass

Table per concrete class

Table per class hierarchy

Yalnzca 1 tablo gereklidir.

Taban snf ve alt snflara ait tm alanlar ayn tabloda yer alr.

Bu strateji, alt snflar tarafndan tanmlanan alanlarn NOT NULL constraint sahibi olmasn engeller.

Table per subclass

Taban snf ve alt snflarn toplam says kadar tablo gereklidir.

Alt snf tablolar ile st snf tablosu arasnda primary key ilikisi vardr. Baka bir deyile ilikisel model one-to-one ilikidir.

En normalize veritaban emas bu yntemle elde edilir.

Bir alt snf okumak bir ya da daha fazla join ilemi gerektirir.

Table per concrete class

Her bir snf iin 1 tabloya ihtiya vardr.

Her tabloda miras alnan alanlar da dahil olmak zere alt snfn alanlar bulunur.

Alt snflar zerinde join ilemine gerek olmakszn ok hzl ilem yaplabilir.

Alt snf bilinmediinde aranan nesne herhangi bir alt snf tablosunda olabileceinden karmak union sorgular ortaya kabilir.

Uygulama

Her kurumsal varln bir ID'si vardr.

Hi bir kurumsal varlk gerekten silinmez.

Her kurumsal varln yaratcs, gncelleyeni ve sileni vardr.

Her kurumsal varln yaratlma, gncelleme ve silinme tarihi vardr.

Uygulama

Senaryo

AbstractEntity ve NamedEntity modelleri oluturulur.

NamedEntity instance' Eden yaratlr.

NamedEntity'den treyen User modeli oluturulur.

3 adet User instance' yaratlr ve yaratclar Eden olarak setlenir.

Senaryo

NamedEntity'den treyen Application modeli oluturulur.

Issue Tracker Application instance' yaratlr. Bu instance'n coders setine 2 User instance' eklenir.

NamedEntity'den treyen Role modeli oluturulur.

ADMIN Role instance' yaratlr. Yaratcs bir User instance' olarak setlenir.

Senaryo

Node, Directory ve Document modelleri oluturulur.

"zgrlk iin" Directory instance' yaratlr. Yaratcs bir User instance' olarak setlenir.

"nsanlk iin" ve "Bar iin" alt dizinleri yaratlr.

"Bilgi paylamak iindir" Document instance' yaratlr.

Teekkrler

Sorular?

Not: Abstraction by Reflection

4Primes

Muokkaa otsikon tekstimuotoa napsauttamalla

Muokkaa jsennyksen tekstimuotoa napsauttamallaToinen jsennystasoKolmas jsennystasoNeljs jsennystasoViides jsennystasoKuudes jsennystasoSeitsems jsennystasoKahdeksas jsennystasoYhdekss jsennystaso