mongoRepository.save() を使用していますが、重複によって挿入が妨げられた場合のエラー情報を取得できません。テストとして、重複したユーザー名を挿入していますが、mongo は単にそれを無視します。ただし、ユーザー名が一意の場合、期待どおりに挿入されます。
私のサービスクラスについては以下を参照してください。
package com.onlinedateshow.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import com.mongodb.BasicDBObject;
import com.onlinedateshow.data.model.User;
import com.onlinedateshow.data.repo.user.UserRepository;
import com.onlinedateshow.model.ui.RegisterUI;
import com.onlinedateshow.model.util.RegisterMapper;
@Service
public class RegisterService {
    @Autowired
    private UserRepository userRepo;
    @Autowired
    MongoTemplate template;
    public String addUser(RegisterUI registerData) {
        User newUser = RegisterMapper.toPersistenceBean(registerData);
        try{
            //does not return error, if duplicates are found, silently 
            //ignores the query
            User saveduser = userRepo.save(newUser);
            //below is what I want but don't know how to get it from a repository
            //String error = template.getDb().getLastError().getErrorMessage();
            //return error;
            return null;
        }catch(Exception e){
            return e.getLocalizedMessage();
        }
    }
}
これは私の UserRepository インターフェイスです:
package com.onlinedateshow.data.repo.user;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.repository.PagingAndSortingRepository;
import com.onlinedateshow.data.model.User;
public interface UserRepository extends MongoRepository<User, String>,
PagingAndSortingRepository<User, String> {
    User findByEmail(String email);
    User findById(String id);
    User findByUserName(String userName);
}
これは、MongoDbFactory を設定する XML ファイルです。
<!-- Activate Spring Data MongoDB repository support -->
    <mongo:repositories base-package="com.mydata.repo.user" />
    <!-- MongoDB host -->
    <mongo:mongo host="${mongo.host.name}" port="${mongo.host.port}" />
    <mongo:db-factory dbname="${mongo.db.name}" />
    <!-- Template for performing MongoDB operations -->
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"
        c:mongo-ref="mongo" c:databaseName="${mongo.db.name}" />