Zarządzanie kolekcjami - lambdaforg/Northwind_AGH GitHub Wiki

Dzięki dodaniu podczas generowania projektu Javy zależności od Mongo jesteśmy w stanie w bardzo prosty sposób stworzyć repozytorium, które pozwoli na wykonywanie podstawowych operacji na danej kolekcji. Pierwszym krokiem będzie stworzenie interfejsu, który będzie reprezentować przykładowe repozytorium, a następnie rozszerzenie parametryzowanego interfejsu MongoRepository, którego pierwszym parameterem jest zmapowany wcześniej dokument, a drugim typ klucza podstawowego.

public interface CustomerRepository extends MongoRepository<Customer, String>

Dzięki konfiguracjom przeprowadzonym w poprzednich krokach możemy już korzystać z bazy danych, podstawowymi operacjami, które udostępnia nam rozszerzone repozytorium, są:

findAll
insert
saveAll
count
delete
deleteAll
deleteById
existsById
findAllById
findById
save
exists
findOne

a także nie musimy tworzyć połączenia z bazą, ponieważ utworzone przez nas repozytorium oraz konfiguracja połączenia z bazą robią to za nas, dlatego możemy wykonywać w/w operacje. Do wykonania operacji potrzebna nam jest instancja stworzonego przez nas repozytorium (może być stworzona dynamicznie, jednak zalecamy wstrzykiwanie zależności, aby ograniczyć zależności pomiędzy klasami), a następnie możemy wykonać przykładową operację:
repository.findAll()
Dzięki udostępnionym funkcjom przez MongoRepository możemy w szybko tworzyć proste zapytania typu:

Product findFirstById(int productId);
List findAllByNameContains(String name);
List findAllByUnitPriceBetween(double priceFrom, double priceTo);

bez implementowania ich. Repozytorium samo rozpoznaje proste zapytania i pozwala od razu je wykorzystywać.

⚠️ **GitHub.com Fallback** ⚠️