Данные Spring с Cassandra @Query ищут собственное имя таблицы вместо имени сущности - PullRequest
0 голосов
/ 21 ноября 2018

Я создаю хранилище данных Spring с Cassandra.Я должен использовать @Query, чтобы получить какой-либо пользовательский результат с CQL вместо findBy методов.

Я получаю исключение, что имя таблицы не настроено, похоже, что @Query используетфактическое имя вместо использования имени сущности при вызове Кассандры.

Вот как выглядит моя установка

@Table("book")
public class BookEntity {
...
}

import java.util.List;

import org.baeldung.spring.data.cassandra.model.BookEntity;
import org.springframework.data.cassandra.repository.CassandraRepository;
import org.springframework.data.cassandra.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

@Repository
public interface BookRepository extends CassandraRepository<BookEntity> {

    @Query("select b.isbn from BookEntity where and publisher=:publisher", allowFiltering = true)
    List<String> findIdsWithPublisher(@Param("publisher") String publisher);
}

Когда я вызываю метод findIdsWithPublisher(), я получаю исключение, что bookentityне настроен.Еще один признак того, что он не использует имя сущности или имена атрибутов сущности, состоит в том, что когда я использую псевдоним в запросе, например from BookEntity b where b.publisher = ..., или любое имя столбца, которое отличается по сущности от его собственного имени, например updatedDate (native updt_date), оно выдает исключения, подобные no viable alternative found for и т. Д.

Принимает ли @Query только собственные запросы или я что-то не так делаю?

Любая подсказка приветствуется.

...