gpt4 book ai didi

java - 如何在spring data mongoDB中指定数据库名称

转载 作者:IT老高 更新时间:2023-10-28 13:07:32 26 4
gpt4 key购买 nike

我正在使用 Mongo 存储库执行 CRUD 操作,如下面的代码所示。尽管此代码有效,但文档和集合是在与我想要的不同的数据库中创建的。如何明确指定存储文档的数据库名称。

POJO 类:

@Document(collection = "actors")
public class Actor
{
@Id
private String id;
...
//constructor
//setters & getters
}

存储库:

public interface ActorRepository extends MongoRepository<Actor, String> 
{
public Actor findByFNameAndLName(String fName, String lName);
public Actor findByFName (String fName);
public Actor findByLName(String lName);
}

使用存储库的服务:

@Service
public class ActorService
{
@Autowired
private ActorRepository actorRepository;

public Actor insert(Actor a)
{
a.setId(null);
return actorRepository.save(a);
}
}

我从 REST Controller 类访问服务:

@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();

}

...
}

我已经创建了这个 spring mongoDB 配置类,它可以选择设置数据库名称,但无法弄清楚如何将它与上面的存储库一起使用。

@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());
}
}

最佳答案

在application.properties中添加一行

spring.data.mongodb.database=your_db_name

这对我有用,对你来说可能为时已晚,但这可以帮助寻找同样问题的人。查看更多楼盘here !

关于java - 如何在spring data mongoDB中指定数据库名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25750815/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com