Added the example with MongoRepository

This commit is contained in:
coach88
2015-07-30 15:00:47 +03:00
parent 973227f23a
commit 2e54ddc841
5 changed files with 151 additions and 130 deletions
@@ -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);
}
}