向所有Spring数据Mongo存储库添加自定义方法-找不到类型的属性[methodName]



我正在尝试将通用方法update添加到我的所有Mongo存储库中。

这是我的代码:

BaseMongoRepository.java

@NoRepositoryBean
public interface BaseMongoRepository<T, ID extends Serializable> extends MongoRepository<T, ID> {
void update(T entity, ID id);
}

BaseMongoRepositoryImpl.java

@NoRepositoryBean
public class BaseMongoRepositoryImpl<T, ID extends Serializable> extends SimpleMongoRepository<T, ID> implements BaseMongoRepository<T, ID> {
private final MongoOperations mongoOperations;
public BaseMongoRepositoryImpl(MongoEntityInformation<T, ID> metadata, MongoTemplate mongoOperations) {
super(metadata, mongoOperations);
this.mongoOperations = mongoOperations;
}
public void update(T entity, ID id) {
Query query = Query.query(Criteria.where("_id").is(id));
Document doc = new Document();
mongoOperations.getConverter().write(entity, doc);
Update update = Update.fromDocument(new Document("$set", doc)); // Update.fromDocument(doc);
mongoOperations.updateFirst(query, update, entity.getClass());
}
}

MongoDB Config.java

@Configuration
@EnableMongoRepositories(repositoryBaseClass = BaseMongoRepositoryImpl.class)
public class MongoDbConfig {
// ...
}

FeedbackMongoRepository

public interface FeedbackMongoRepository extends BaseMongoRepository<FeedbackEntity, String> {
}

但无论我尝试什么,我总是在应用程序启动时出现以下错误:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'feedbackMongoRepository': Invocation of init method failed; 
nested exception is org.springframework.data.mapping.PropertyReferenceException: 
No property update found for type FeedbackEntity!

任何帮助都将不胜感激!

问题是@EnableMongoRepositories与存储库在不同的包中。我通过添加basePackages参数解决了这个问题:

@EnableMongoRepositories(
basePackages = "cz.connect.server",
repositoryBaseClass = BaseMongoRepositoryImpl.class)

最新更新