JPA Fetch Stratejileri ve Lazy Loading
JPA içerisinde nesneler arasındaki ilişkilerde verinin getirilmesi ile ilgili davranışlar kendi aralarında farklılık gösterebilmektedir. Bu özelliği sağlayan fetch stratejileridir.
Örnek verecek olursak OneToOne ve ManyToOne ilişkili nesneler asıl nesnenin çağırımıyla birlikte direkt olarak getirilirken, OneToMany ve ManyToMany ilişkili nesnelerde ise ilişkili nesnenin çağırımı ile bilgi çekilmesi sağlanmaktır. Fetch stratejilerinde OneToOne ve ManyToOne default olarak EAGER iken, ManyToMany ve OneToMany ise LAZY stratejisindedir.
Buna göre
LAZY : Tembel yükleme, asıl nesne çağırımı sonrasında lazy ilişkili nesnelerden bilgi getirilmez. Bilgiyi ancak ilişkili nesnenin çağırımı ile birlikte getirir. Burada get metodunun çağırımı ile proxy devreye girer ve ilgili sorguyu gerçekleştirir.
EAGER : Direkt yükleme, asıl nesne çağırımı ile birlikte ilişkili nesne bilgiside getirilir.
Buna örnek verecek olursak Document ve SubDocument isimli iki adet entity miz bulunuyor ve bu entityler kendi aralarinda aşağıdaki gibi ilişkili.
Bu ilişkinin kod tanımı aşağıdaki gibidir.
Devam et…









Son Yorumlar