Tôi đang sử dụng kho lưu trữ Mongo để thực hiện các thao tác CRUD như trong mã bên dưới. Mặc dù mã này hoạt động, nhưng các tài liệu và các bộ sưu tập được tạo trong một DB khác với cái mà tôi muốn. Làm cách nào tôi có thể chỉ định rõ ràng tên DB cho các tài liệu sẽ được lưu trữ.cách chỉ định tên cơ sở dữ liệu trong dữ liệu mùa xuân mongoDB
Lớp POJO:
@Document(collection = "actors")
public class Actor
{
@Id
private String id;
...
//constructor
//setters & getters
}
Các kho:
public interface ActorRepository extends MongoRepository<Actor, String>
{
public Actor findByFNameAndLName(String fName, String lName);
public Actor findByFName (String fName);
public Actor findByLName(String lName);
}
Các dịch vụ có sử dụng kho:
@Service
public class ActorService
{
@Autowired
private ActorRepository actorRepository;
public Actor insert(Actor a)
{
a.setId(null);
return actorRepository.save(a);
}
}
Và tôi truy cập vào dịch vụ từ một lớp điều khiển REST:
@RestController
public class Controllers
{
private static final Logger logger = Logger.getLogger(Controllers.class);
private static final ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class);
@Autowire
private ActorService actorService;
@RequestMapping(value="/createActor", method=RequestMethod.POST)
public @ResponseBody String createActor(@RequestParam(value = "fName") String fName,
@RequestParam(value = "lName") String lName,
@RequestParam(value = "role") String role)
{
return actorService.insert(new Actor(null,fName,lName,role)).toString();
}
...
}
Tôi đã tạo lớp cấu hình mongoDB mùa xuân này có tùy chọn thiết lập tên DB, nhưng không thể tìm ra cách sử dụng nó với các kho lưu trữ ở trên.
@Configuration
public class SpringMongoConfig extends AbstractMongoConfiguration
{
@Bean
public GridFsTemplate gridFsTemplate() throws Exception
{
return new GridFsTemplate(mongoDbFactory(), mappingMongoConverter());
}
@Override
protected String getDatabaseName()
{
return "MyDB";
}
@Override
@Bean
public Mongo mongo() throws Exception
{
return new MongoClient("localhost" , 27017);
}
public @Bean MongoTemplate mongoTemplate() throws Exception
{
return new MongoTemplate(mongo(), getDatabaseName());
}
}
Bạn đã tìm thấy câu trả lời? Đã mắc kẹt với cùng một vấn đề sau khi làm theo hướng dẫn này: https://spring.io/guides/gs/accessing-mongodb-data-rest/ – Mussa
Thật không may, không. – Sami