search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
769 gösterim
Herkese merhaba,

Spring Data Mongo kullanılan bir projede MongoTemplate ile MongoRepository interface i arasındaki farklar nelerdir ?

Şimdiden teşekkürler,
Veri Tabanı kategorisinde 176 puan

1 cevap

1 oy

Merhabalar,

Bu konuda internet üzerinde bulabileceğiniz temel seviyede bir bilgi vermek yerine daha ayrıntılı birkaç noktaya değineceğim.

- MongoTemplate daha esnek bir yapıya sahip olup kullanım alanı olarak da daha kapsamlıdır. Oluşturmak istediğiniz herhangi bir crud işlemi çok kompleks olduğunda mongotemplate kullanmaya ihtiyaç duyacağınızı düşünüyorum.

- MongoRepository kullanım kolaylığı&zaman kazancı sağlar diyebilirim. Mongotemplate'e kıyasla az kod satırıyla daha çok iş yapabilmeye olanak sağlar. Örneğin basit bir sorgu işlemi üzerinden gidecek olursak; ogrenciler document'inde ad ve soyad ile sorgu yapmanın MongoRepository'deki karşılığı findByAdAndSoyad(); yazmaktan ibarettir. MongoTemplate'de aynı işlem için Query nesnesi oluşturup sonrasında arama yapmanız gerekir.

- MongoRepository repository programming model in bir parçası olduğundan internette daha fazla kaynak bulabilirsiniz.

- Ben kendi adıma MongoRepository'i sadece sorgu için kullanırım onun dışında beni kısıtlayan bir yapı olduğunu düşünüyorum. MongoRepository'de update ve insert işlemlerinin karşılığı "save" methodudur. Yani bir ya da birden çok satırı update etmeden önce update edilecek satır/ları getirecek bir sorgu çekmeniz gerekir. Bu sorgudan dönen satırı güncelleyip güncellenmiş entity nesnesini save methodunun içine parametre olarak vermelisiniz. Update işlemi sırasında da MongoDb kendi içinde update edilecek satırı bulup sonra update işlemi gerçekleştireceğinden dolayı bir update için 2 kez sorgu atmış olursunuz. Mongotemplate'de ise güncellemek istediğiniz kaydın query'si ile değişecek fieldlarını parametre olarak vermeniz yeterlidir. Böylelikle update işleminden önce veritabanına ekstra sorgu atmamış olursunuz. 

İyi çalışmalar.

108 puan
düzenledi

İlgili sorular

0 oy
1 cevap 1.7K gösterim
1.7K gösterim
Selam herkese, Spring-Data Jpa içinde JpaRepository PagingAndSortingRepository ve CrudRepository implementasyonlarının farkları nelerdir ? Hangisini neye göre tercih etmeliyiz ? Teşekkürler
26 Temmuz 2017 Java kategorisinde akotako 176 puan sordu
0 oy
1 cevap 181 gösterim
181 gösterim
Spring data kullanırken elimdeki stored procedure nasıl çağırabilirim?
11 Mayıs 2020 Java kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 501 gösterim
501 gösterim
Server side uygulamama yapılmış bir web servis isteği sırasında herhangi bir durum için hata alınması durumunda(RuntimeException) bir document üzerinde yaptığım crud operasyonları için rollback yapamıyorum. Esasen burada yapılmak istenen @Transactional anotasyonunun fonksiyonelitesini ... mevcut bir yapı bulunuyor mu ? Bulunmuyorsa nasıl bir yol izlemem gerekiyor (manuel olarak)? Teşekkürler.
5 Haziran 2017 Java kategorisinde Süleyman Gezsat 108 puan sordu
0 oy
1 cevap 661 gösterim
661 gösterim
Lambda Expression ve Anonymous class arasındaki fark nedir? Lamda epression anonim bir fonksiyon diye biliyorum. Yani Anonim bir functional interface class'ı Hatta @FunctionalInterface kullanılıyor,.
30 Eylül 2020 Java kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 250 gösterim
250 gösterim
Collection listesi nasıl alınabilir?
13 Temmuz 2016 Veri Tabanı kategorisinde kenan 6.2k puan sordu