Есть ли рекомендуемый способ работы с документами, у которых нет поля _class
с spring-data-couchbase (если есть)?Попытка просто выдает исключение, как и ожидалось.
Редактировать: Извинения, если это было слишком расплывчато, позвольте мне добавить немного больше контекста.Скажем, я хочу получить данные из couchbase для какого-то студента по имени.Репозиторий выглядит примерно так -
@ Repository
открытый интерфейс StudentRepository расширяет CouchbaseRepository {
Optional<StudentDocument> findByName(String name);
}
Теперь документы в couchbase непусть поле _class ИЛИ скажет, если мы вводим разные «ключ» и «значение» для поля _class, поскольку мы не хотим на него полагаться, поэтому этот метод завершается ошибкой.Я вроде взломал обходной путь для этого, используя -
`
@Override
public Student getStudent(String name) {
N1qlQuery query = N1qlQuery.simple(String.format("select *, META().id AS _ID, META().cas AS _CAS" +
" from student where name = \'%s\';", name));
return Optional.ofNullable(studentRepository.getCouchbaseOperations()
.findByN1QL(query, StudentWrapper.class)
.get(0))
.map(StudentWrapper::getStudent)
.orElseGet(() -> {
throw new HttpClientErrorException(HttpStatus.NOT_FOUND);
});
}
`
Мне было интересно, есть ли альтернативный способ достижения этого