MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Không tìm thấy thuộc tính nào cho loại ... Khi sử dụng QueryDslPredicateExecutor với MongoDB và Spring-Data

Tôi đã giải quyết vấn đề này bằng cách mở rộng kho lưu trữ cơ sở của mình và triển khai QueryDslPredicateExecutor, thay vì kho lưu trữ cấp cao hơn.

// 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Đặt mật khẩu cho cơ sở dữ liệu mongo của sao băng

  2. Nối mục vào mảng tài liệu MongoDB trong PyMongo mà không cần chèn lại

  3. Cài đặt mô-đun mongodb morphia của khung chơi

  4. Tài liệu được phân trang bằng Flask MongoEngine với trường hình ảnh

  5. Grails - Kết nối với cơ sở dữ liệu MongoDB bằng xác thực