JPA Query метод не возвращает ничего - PullRequest
0 голосов
/ 07 июня 2019

В настоящее время он работает с пользовательским запросом n1ql, однако это такой простой запрос, что я решил просто использовать встроенный метод запроса jpa, однако я не могу понять ключевые слова, потому что я не получить что-нибудь обратно.

Этот код работает:

@Query("SELECT meta().id as _ID, meta().cas as _CAS, * FROM `my-bucket` mb " +
        "WHERE mb.name like $1 OR ANY Parent " +
        "IN mb.Parents SATISFIES Parent.name like $1 END")
List<MyObject> searchObjectByName(String name);

Это, однако, не работает

@N1qlPrimaryIndexed
public interface MyObjectRepository extends CouchbasePagingAndSortingRepository<MyObject, String> {
    List<MyObject> findBySecondObjectNameContains(String name);
}

@Data
@Document
public class MyObject{

    @Id
    private String objectId;

    @Field
    private SecondObject secondObject;
}


@Data
public class SecondObject {
    @Field
    private String name;
}

Мой метод испытаний:

@Autowired
private MyObjectRepository myObjectRepository;

@Test
public void testFind() {
    List<MyObject> myObjects = myObjectRepository.findBySecondObjectNameContains("my name");

    Assert.assertNotNull(myObjects);
}

1 Ответ

0 голосов
/ 11 июня 2019

Запрос выглядит правильно, несколько вещей, которые могут отсутствовать:

1) В своем тесте вы уверены, что «мое имя» не должно быть «мое имя%»? 2) Проверьте, есть ли у вас первичный или вторичный индекс, который покрывает этот запрос (запустите тот же запрос через веб-консоль) 3) Когда вы вставили данные? Если вы не настроили стойкую базу данных couchbase, возможно, вы читали старую версию ваших данных

...