【发布时间】:2019-04-30 07:07:51
【问题描述】:
当我将 @EnableMongoAuditing 功能与 MongoRepository 一起使用时,我收到“找不到类型类的 PersistentEntity”错误。
当我在数据库中不存在集合时保存文档时会发生这种情况。
我试过了:
- https://github.com/spring-projects/spring-boot/issues/12023
- https://jira.spring.io/browse/DATAMONGO-1999
- Spring boot mongodb auditing error
但没有任何效果。
提到的事情是:
通过 AbstractMongoConfiguration 扩展 MongoConfig 并覆盖所有方法。
这是我重现相同错误的代码:
MongoConfig 类
@Configuration
public class MongoConfig extends AbstractMongoConfiguration {
@Value("${spring.data.mongodb.host}")
private String mongoHost;
@Value("${spring.data.mongodb.port}")
private String mongoPort;
@Value("${spring.data.mongodb.database}")
private String mongoDB;
@Override
public MongoDbFactory mongoDbFactory() {
return new SimpleMongoDbFactory(new MongoClient(mongoHost + ":" + mongoPort), mongoDB);
}
@Override
public MongoClient mongoClient() {
return new MongoClient(mongoHost, Integer.parseInt(mongoPort));
}
@Override
public MongoTemplate mongoTemplate() {
return new MongoTemplate(mongoDbFactory());
}
@Override
public MappingMongoConverter mappingMongoConverter() {
return new MappingMongoConverter(new DefaultDbRefResolver(mongoDbFactory()), new MongoMappingContext());
}
@Override
protected String getDatabaseName() {
return mongoDB;
}
}
人物集合类
@Document
public class Person {
@Id
private String id;
private String name;
@CreatedDate
private LocalDateTime createdAt;
@LastModifiedDate
private LocalDateTime lastModified;
// Getter Setters Constructors omitted for brevity
}
主应用程序类
@EnableMongoAuditing
@EnableMongoRepositories ({"com.example.*", "org.apache.*"})
@SpringBootApplication
@ComponentScan({"com.example.*", "org.apache.*"})
public class DemoApplication implements CommandLineRunner {
@Autowired
PersonRepository personRepository;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
Person p1 = new Person("1", "prakhar");
personRepository.save(p1);
}
}
预期结果是 Person 实体应保存在数据库中。 实际结果是“找不到类型类 Person 的 PersistentEntity”错误
【问题讨论】:
标签: spring-boot spring-data-mongodb