Posts

Showing posts from April, 2021

ThreadPoolExecutor ve ThreadPoolTaskExecutor ferqleri

Arashdirdigim qederi ile aralarinda ferqli cehetler yox kimidir. ThreadPoolTaskExecutor ozu arxada ThreadPoolExecutor istifade edir.  Bir ferqli meqam var ki, TPE yaradarken, constructorda mutleq corePoolSize, maxPoolSize ve s kimi deyerlerini vermeliyik. TPTE ise, TPE ni bean-style yaratmaga imkan verir. Hetta corePoolSize ve maxPoolSize deyerlerini vermesek bele ozu arxada default deyerler saxladigina gore TPE ni yarada bilir. https://stackoverflow.com/questions/39934115/difference-and-suggest-threadpooltaskexecutor-and-threadpoolexecutor

Left , Right ve Inner Join ferqleri

Bu ferqleri gostermek uchun choxun bire elaqeni nezerde tutaq. Meselen bir user bir neche kitaba sahib ola biler. amma hemin kitab yalniz hemin user e aiddir. userleri cheken zaman left join elesek, bu zaman ustunluk user table da olan datalara verilecek. yeni bir userin kitabi olmasa bele bu user de sechilen datalar ichinde olacaq.  link yene userleri chekmekle misal gosterek ve bu defe inner join istifade edek. Burada artiq hech bir kitaba sahib olmayan user secilen datalar ichinde olmayacaq. Burada ustunluk iki table arasinda kesismeye verilir.  link right join istifadesinde ustunluk book table a verilecek.  link

@Transactional annotation haqqinda. Cascade istifade olunmasi

Image
Umumiyyetle bu annotation Service Layer de istifade etmek duzgundur. Repository de istifade etmek, Serivce layerden cagrilan her bir Repository method uchun tranzaksiyanin yaradilmasi demekdir.  Meselen, UserRepository de save ve remove adli method var tutaq ki ve Transactional annotation u ile qeyd olunub. Service Layerde saveAndRemoveUnused adli method var. Bu method save edib, istifade olunmayanlari remove edecek.  Eger Service Layerden bu iki methodu cagirsaq, bu zaman her bir emeliyyat uchun Tranzaksiya achilacaq ki, bu da db ni yora biler. Hell yolu olaraq, Service Layerde bu methodlarin istifade oludugun yerde @Transaction qeyd etmek kifayetdir. Bu zaman bu method ishlediyi vaxt boyunca yalniz bir tranzaksiya achilacaq. save ve update methodlari uchun ayrica tranzaksiya achilmayacaq. Diger istifadesine baxsaq meselen, update method id e gore tapir ve hemin useri hansisa field ni deyishir. Methodun bashina @Transactional yazmaqla, userRepository nin save methodunu cagirmaqdan use