MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara melihat implementasi repositori yang dihasilkan oleh Spring Data MongoDB?

tl;dr

Tidak, untuk alasan yang sangat sederhana:tidak ada pembuatan kode yang terjadi. Implementasinya didasarkan pada proxy dan pencegat metode yang mendelegasikan eksekusi panggilan ke tempat yang tepat.

Detail

Secara efektif, eksekusi metode dapat didukung oleh 3 jenis kode:

  1. Implementasi khusus toko dari CrudRepository . Lihat jenis bernama Simple(Jpa|Mongo|Neo4|…)Repository (lihat yang spesifik JPA di sini ). Mereka memiliki implementasi "nyata" untuk semua metode di CrudRepository dan PagingAndSortingRepository .

  2. Metode kueri dijalankan secara efektif oleh QueryExecutorMethodInterceptor.doInvoke(…) (lihat di sini ). Ini pada dasarnya adalah proses 3 langkah untuk menemukan target delegasi dan memintanya. Eksekusi sebenarnya dilakukan di kelas bernama (Jpa|Mongo|Neo4j…)QueryExecution (lihat yang ini misalnya).

  3. Kode implementasi khusus dipanggil secara langsung, juga dari QueryExecutorMethodInterceptor .

Satu-satunya yang tersisa adalah derivasi kueri, yang terdiri dari dua bagian utama:penguraian nama metode dan pembuatan kueri. Untuk yang pertama, lihat PartTree . Dibutuhkan nama metode dan tipe dasar dan akan mengembalikan Anda struktur seperti AST yang diurai atau memberikan pengecualian jika gagal menyelesaikan properti atau sejenisnya.

Yang terakhir diimplementasikan di kelas bernama PartTree(Jpa|Mongo|Neo4j|…)Query dan mendelegasikan ke komponen tambahan untuk benar-benar membuat kueri khusus toko. Misalnya. untuk JPA bit yang menarik mungkin ada di JpaQueryCreator.PredicateBuilder.build() (lihat di sini ).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana saya harus mendaftarkan layanan mongodb saya yang menggunakan MongoClient, Singleton atau scoped?

  2. koneksi mongodb grails ditolak

  3. Luwak .save() tidak menyimpan ke database?

  4. Enam Komponen Penting dari Tata Kelola Data yang Berhasil

  5. Cara menggabungkan data dari dua koleksi di MongoDB