Java Spring数据总是返回一个带有反应式mongo存储库的空数组
我正在尝试使用反应式mongo库和spring数据构建一个应用程序。但是,每次我点击应用程序并使用Java Spring数据总是返回一个带有反应式mongo存储库的空数组,java,spring,mongodb,spring-boot,spring-data-mongodb,Java,Spring,Mongodb,Spring Boot,Spring Data Mongodb,我正在尝试使用反应式mongo库和spring数据构建一个应用程序。但是,每次我点击应用程序并使用dao.findAll()时,我都会得到一个空的结果数组。 请在下面查找代码 /config/MongoAdminConfig.java @EnableReactiveMongoRepositories public class MongoAdminConfig extends AbstractReactiveMongoConfiguration { @Override @Bea
dao.findAll()
时,我都会得到一个空的结果数组。
请在下面查找代码
/config/MongoAdminConfig.java
@EnableReactiveMongoRepositories
public class MongoAdminConfig extends AbstractReactiveMongoConfiguration {
@Override
@Bean
public MongoClient reactiveMongoClient() {
MongoClientSettings settings = MongoClientSettings.builder()
.applyConnectionString(new ConnectionString("mongodb://localhost:27017/projects"))
.build();
return MongoClients.create(settings);
}
@Override
protected String getDatabaseName() {
return "projects";
}
}
@RestController
@RequestMapping("accounts")
public class AccountController {
@Autowired
private AccountDao accountDao;
@GetMapping
public Flux<Account> getAllAccounts() {
return this.accountDao.findAll();
}
}
public interface AccountDao extends ReactiveCrudRepository<Account, String> {
}
@Document(collection = "accounts")
public class Account {
@Id
private String id;
private String accountNumber;
private String type;
private String status;
private double availableBalance;
private String currency;
//getters and setters
}
/controllers/AccountController.java
@EnableReactiveMongoRepositories
public class MongoAdminConfig extends AbstractReactiveMongoConfiguration {
@Override
@Bean
public MongoClient reactiveMongoClient() {
MongoClientSettings settings = MongoClientSettings.builder()
.applyConnectionString(new ConnectionString("mongodb://localhost:27017/projects"))
.build();
return MongoClients.create(settings);
}
@Override
protected String getDatabaseName() {
return "projects";
}
}
@RestController
@RequestMapping("accounts")
public class AccountController {
@Autowired
private AccountDao accountDao;
@GetMapping
public Flux<Account> getAllAccounts() {
return this.accountDao.findAll();
}
}
public interface AccountDao extends ReactiveCrudRepository<Account, String> {
}
@Document(collection = "accounts")
public class Account {
@Id
private String id;
private String accountNumber;
private String type;
private String status;
private double availableBalance;
private String currency;
//getters and setters
}
/models/Account.java
@EnableReactiveMongoRepositories
public class MongoAdminConfig extends AbstractReactiveMongoConfiguration {
@Override
@Bean
public MongoClient reactiveMongoClient() {
MongoClientSettings settings = MongoClientSettings.builder()
.applyConnectionString(new ConnectionString("mongodb://localhost:27017/projects"))
.build();
return MongoClients.create(settings);
}
@Override
protected String getDatabaseName() {
return "projects";
}
}
@RestController
@RequestMapping("accounts")
public class AccountController {
@Autowired
private AccountDao accountDao;
@GetMapping
public Flux<Account> getAllAccounts() {
return this.accountDao.findAll();
}
}
public interface AccountDao extends ReactiveCrudRepository<Account, String> {
}
@Document(collection = "accounts")
public class Account {
@Id
private String id;
private String accountNumber;
private String type;
private String status;
private double availableBalance;
private String currency;
//getters and setters
}
数据库查询示例
> db.accounts.find({})
{ "_id" : ObjectId("5deb40c43e079db50337b211"), "accountNumber" : "BANK123456", "type" : "savings", "status" : "active", "availableBalance" : 10000.5, "currency" : "USD" }
> db
projects
>
/pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.aditapillai.demos</groupId>
<artifactId>accounts-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<version>2.2.1.RELEASE</version>
<artifactId>spring-boot-starter-parent</artifactId>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb-reactive</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
</dependencies>
</project>
4.0.0
com.aditapillai.demos
站台详情:
操作系统:Ubuntu 19.04 LTS
Mongo版本:4.2.1
我的mongo服务器正在我的本地计算机上运行,端口为27017
这是一个新的mongo安装。通过执行以下操作进行修复
已删除/config/MongoAdminConfig.java
/Application.java
@SpringBootApplication
@EnableReactiveMongoRepositories
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
src/main/resources/application.yml
spring:
data:
mongodb:
host: localhost
port: 27017
database: projects
我会一直想知道这里到底发生了什么