Java 将自定义方法添加到所有Spring data Mongo存储库-找不到类型的属性[methodName]
我正在尝试将通用方法Java 将自定义方法添加到所有Spring data Mongo存储库-找不到类型的属性[methodName],java,mongodb,spring-boot,Java,Mongodb,Spring Boot,我正在尝试将通用方法update添加到我的所有Mongo存储库中 这是我的密码: BaseMongoRepository.java @NoRepositoryBean public interface BaseMongoRepository<T, ID extends Serializable> extends MongoRepository<T, ID> { void update(T entity, ID id); } @NoRepositoryBean
update
添加到我的所有Mongo存储库中
这是我的密码:
BaseMongoRepository.java
@NoRepositoryBean
public interface BaseMongoRepository<T, ID extends Serializable> extends MongoRepository<T, ID> {
void update(T entity, ID id);
}
@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());
}
}
@Configuration
@EnableMongoRepositories(repositoryBaseClass = BaseMongoRepositoryImpl.class)
public class MongoDbConfig {
// ...
}
FeedbackMongoRepository
public interface FeedbackMongoRepository extends BaseMongoRepository<FeedbackEntity, String> {
}
任何帮助都将不胜感激 问题在于,
@enablemongoreposities
与存储库位于不同的包中。我通过添加basePackages
参数解决了这个问题:
@EnableMongoRepositories(
basePackages = "cz.connect.server",
repositoryBaseClass = BaseMongoRepositoryImpl.class)
FeedbackEntity中的属性名称和方法名称是否同步?@PEADERWST这是一个自定义存储库和方法。我应该可以用任何名字。
@EnableMongoRepositories(
basePackages = "cz.connect.server",
repositoryBaseClass = BaseMongoRepositoryImpl.class)