Added the example with MongoRepository
This commit is contained in:
@@ -2,11 +2,13 @@ package org.baeldung.config;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
|
||||
|
||||
import com.mongodb.Mongo;
|
||||
import com.mongodb.MongoClient;
|
||||
|
||||
@Configuration
|
||||
@EnableMongoRepositories(basePackages = "org.baeldung.repository")
|
||||
public class MongoConfig extends AbstractMongoConfiguration {
|
||||
|
||||
@Override
|
||||
@@ -20,7 +22,7 @@ public class MongoConfig extends AbstractMongoConfiguration {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getMappingBasePackage() {
|
||||
public String getMappingBasePackage() {
|
||||
return "org.baeldung";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,68 +1,11 @@
|
||||
package org.baeldung.repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.baeldung.model.User;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.data.mongodb.core.query.Update;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.baeldung.model.User;
|
||||
|
||||
import com.mongodb.WriteResult;
|
||||
|
||||
@Repository
|
||||
public class UserRepository {
|
||||
|
||||
@Autowired
|
||||
private MongoTemplate mongoTemplate;
|
||||
|
||||
public void insertUser(User user) {
|
||||
mongoTemplate.insert(user, "user");
|
||||
}
|
||||
|
||||
public List<User> listUser() {
|
||||
return mongoTemplate.findAll(User.class, "user");
|
||||
}
|
||||
|
||||
public void removeUser(User user) {
|
||||
mongoTemplate.remove(user, "user");
|
||||
}
|
||||
|
||||
public void saveUser(User user) {
|
||||
mongoTemplate.save(user, "user");
|
||||
}
|
||||
|
||||
public User findAndModifyUser(String name, String newName) {
|
||||
Query query = new Query();
|
||||
query.addCriteria(Criteria.where("name").is(name));
|
||||
Update update = new Update();
|
||||
update.set("name", newName);
|
||||
return mongoTemplate.findAndModify(query, update, User.class);
|
||||
}
|
||||
|
||||
public void updateFirstUser(String name, String newName) {
|
||||
Query query = new Query();
|
||||
query.addCriteria(Criteria.where("name").is(name));
|
||||
Update update = new Update();
|
||||
update.set("name", newName);
|
||||
mongoTemplate.updateFirst(query, update, User.class);
|
||||
}
|
||||
|
||||
public WriteResult upsertUser(String name, String newName) {
|
||||
Query query = new Query();
|
||||
query.addCriteria(Criteria.where("name").is(name));
|
||||
Update update = new Update();
|
||||
update.set("name", newName);
|
||||
return mongoTemplate.upsert(query, update, User.class);
|
||||
}
|
||||
|
||||
public void updateMultiUser(String name, String newName) {
|
||||
Query query = new Query();
|
||||
query.addCriteria(Criteria.where("name").is(name));
|
||||
Update update = new Update();
|
||||
update.set("name", newName);
|
||||
mongoTemplate.updateMulti(query, update, User.class);
|
||||
}
|
||||
public interface UserRepository extends MongoRepository<User, String> {
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
package org.baeldung.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.baeldung.model.User;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.data.mongodb.core.query.Update;
|
||||
|
||||
import com.mongodb.WriteResult;
|
||||
|
||||
|
||||
public class UserService {
|
||||
|
||||
@Autowired
|
||||
private MongoTemplate mongoTemplate;
|
||||
|
||||
public void insertUser(User user) {
|
||||
mongoTemplate.insert(user, "user");
|
||||
}
|
||||
|
||||
public List<User> listUser() {
|
||||
return mongoTemplate.findAll(User.class, "user");
|
||||
}
|
||||
|
||||
public void removeUser(User user) {
|
||||
mongoTemplate.remove(user, "user");
|
||||
}
|
||||
|
||||
public void saveUser(User user) {
|
||||
mongoTemplate.save(user, "user");
|
||||
}
|
||||
|
||||
public User findAndModifyUser(String name, String newName) {
|
||||
Query query = new Query();
|
||||
query.addCriteria(Criteria.where("name").is(name));
|
||||
Update update = new Update();
|
||||
update.set("name", newName);
|
||||
return mongoTemplate.findAndModify(query, update, User.class);
|
||||
}
|
||||
|
||||
public void updateFirstUser(String name, String newName) {
|
||||
Query query = new Query();
|
||||
query.addCriteria(Criteria.where("name").is(name));
|
||||
Update update = new Update();
|
||||
update.set("name", newName);
|
||||
mongoTemplate.updateFirst(query, update, User.class);
|
||||
}
|
||||
|
||||
public WriteResult upsertUser(String name, String newName) {
|
||||
Query query = new Query();
|
||||
query.addCriteria(Criteria.where("name").is(name));
|
||||
Update update = new Update();
|
||||
update.set("name", newName);
|
||||
return mongoTemplate.upsert(query, update, User.class);
|
||||
}
|
||||
|
||||
public void updateMultiUser(String name, String newName) {
|
||||
Query query = new Query();
|
||||
query.addCriteria(Criteria.where("name").is(name));
|
||||
Update update = new Update();
|
||||
update.set("name", newName);
|
||||
mongoTemplate.updateMulti(query, update, User.class);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user