update na bazie mongoDB

0

mam problem w update do bazy danych.

Z poziomu mongodb toola (mongo 3t) uzywam takiej query, ktora działa:

db.getCollection('XXX').update(
   {identifier: "123"}, //find criteria
   // this row contains fix with $set oper
   { $set : { migrated: "1"}} , { multi: true }); 

mam api w springboocie i do niego kod:

 Query query = new Query();
        query.addCriteria(Criteria.where("identifier").is(123));

        Update update = new Update();
        update.set("migrated", "1");

        mongoTemplate.updateMulti(query, update, Person.class);
//        mongoOperations.updateMulti(query, update, Person.class);

i ten update nie działa.

wzorowałem się na: https://www.mkyong.com/mongodb/spring-data-mongodb-update-document/ i specjalnie używałem zarówno mongoTemplate jak i mongoOperation.

Trzeba jakoś dodatkowo popchnąć ten update do bazy danych?
Dodawałem też adnotacje @transiactional , ale też beż rezultatu

*nie ma żadnego exceptiona

0

używałeś po prostu metody save() ? Może po kluczu po prostu zastąpi sobie ten dokument.

0

tak i jest: "message": "No Persistent Entity information found for the class java.lang.Class",

0

Pokazałbyś swoją klasę DTO?
Dla mongo powinno być id a adnotacją @Id z pakietu Springa, a nie JPA.

0
masjav napisał(a):

tak i jest: "message": "No Persistent Entity information found for the class java.lang.Class",

dla potomnych, nie spotkakałem się z takim rozwiązaniem, ale w moim przypadku działa, należało dodać nazwę kolekcji.

mongoTemplate.upsert(query, update, Person.class, "collectionName");

co jest dziwne, bo inne metody mongoTemplate działaly bez tego:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1