Как я могу использовать QueryDSL в настраиваемом MongoRepository в Spring Data - PullRequest
0 голосов
/ 29 мая 2018

Название довольно очевидно, но ...

Ребята, я использую MongoRepository с QueryDSL, например:

interface MyRepository 
extends MongoRepository<MyObject, String>,
        MyRepositoryCustom,
        QuerydslPredicateExecutor<MyObject>

Как я могу использовать QueryDSL в моем собственном репозиторииMyRepositoryCustom?

У меня есть интерфейс:

interface MyRepositoryCustom {

    Optional<MyObject> findUsingValues(String value1, String value2);

}

Я хочу использовать findOne, который получает Predicate в качестве параметра в моем Impl как:

public class MyRepositoryCustomImpl implements MyRepositoryCustom {

    @Override
    Optional<MyObject> findUsingValues(String value1, String value2){

        BooleanBuilder builder = new BooleanBuilder();
        //Mount builder with values and Query Objects

        return findOne(builder.get());//How can I make this line work?
    }
}

РЕДАКТИРОВАТЬ Я пытался расширить де QuerydslPredicateExecutor в MyRepositoryCustomImpl, но метод так и не был достигнут.Я думаю, что это из-за уникального конструктора, необходимого для QuerydslPredicateExecutor.

например:

public class MyRepositoryCustomImpl extends QuerydslPredicateExecutor<MyObject> implements MyRepositoryCustom {

    public MyRepositoryCustomImpl(MongoEntityInformation<MyObject, ?> entityInformation, MongoOperations mongoOperations) {
        super(entityInformation, mongoOperations);
    }

    @Override
    Optional<MyObject> findUsingValues(String value1, String value2){

        BooleanBuilder builder = new BooleanBuilder();
        //Mount builder with values and Query Objects

        return findOne(builder.get());//How can I make this line work?
    }
}
...