sql >> データベース >  >> NoSQL >> MongoDB

タイプのプロパティが見つかりません...MongoDBおよびSpring-DataでQueryDslPredicateExecutorを使用する場合

    上位レベルのリポジトリではなく、ベースリポジトリを拡張してQueryDslPredicateExecutorを実装することで、これを解決することになりました。

    // Custom repository interface
    @NoRepositoryBean
    public interface ExtendedMongoRepository<T, ID extends Serializable> extends MongoRepository<T, ID>, QueryDslPredicateExecutor<T>{
    
      public Page<T> query(Query query, Pageable pageable);
    
    }
    
    
    // Custom Repository Implementation
    public abstract class ExtendedMongoRepositoryImpl<T, ID extends Serializable> extends QueryDslMongoRepository<T, ID>
            implements ExtendedMongoRepository<T, ID> {
    
        private Class<T> clazz;
        private MongoOperations mongoOperations;
        @SuppressWarnings("unused")
        private MongoEntityInformation<T, ID> metadata;
    
        public ExtendedMongoRepositoryImpl(MongoEntityInformation<T, ID> metadata, MongoOperations mongoOperations) {
            super(metadata, mongoOperations);
            this.mongoOperations = mongoOperations;
            this.clazz = metadata.getJavaType();
            this.metadata = metadata;
        }
    
        @Override
        public Page<T> query(Query query, Pageable pageable) {
            List<T> list =  mongoOperations.find(query.with(pageable), clazz);
            return new PageImpl<T>(list, pageable, list.size());
        }
    }  
    
    // Entity Repository Interface
    public interface TreeRepository extends ExtendedMongoRepository<Tree, String> {}
    


    1. マングースnpmのインストールに失敗しました

    2. MongoDBの再帰ドキュメントの構造とクエリ構文?

    3. ObjectIdの日付でMongoDBの結果を集計します

    4. 空白のないmongodbprintjson、つまり、unpretty json