2014-09-03 10 views
5

Mam @Document klasę „Projekt” z następujących zmiennych:Parametr nie uznawane przez wiosenny Danych ElasticsearchCrudRepository

@Document(indexName = "project-index") 
    public class Project { 
    ... 
     @JsonProperty("import_id") 
     private Long importId; 

     private String title; 
    ... 
    //getters and setters 
    } 

Moje JSON jest podobny do poniższego

{ 
     "_id" : ObjectId("5269fd92e4b0c74e42976c91"), 
    ... 
     "import_id" : NumberLong(1), 
     "title" : "Something", 
    ... 
    } 

A moja klasa jest @Repository na przykład:

@Repository 
    public interface ProjectRepository extends ElasticsearchCrudRepository<Project, String>{ 
     Page<Project> findByImportId(Long importId, Pageable page); 
     Page<Project> findByTitleLike(String title, Pageable page); 
    } 

Problem polega na tym, że findByImportId nie otrzymuje żadnych dane, podczas gdy findByTitleLike działa dobrze i pozwala mi pobierać dane, próbowałem z różnymi konfiguracjami, ale wydaje mi się, że SpringData nie rozróżnia pola, które musi przeszukiwać według parametru import_id, nawet jeśli skonfigurowano @JsonProperty. Co więcej, próbowałem zmienić nazwę zmiennej na wartość import_id (również getter i setter), ale w takim przypadku, gdy próbowałem użyć findByImport_Id, findByImport_id, findByImport__Id lub findByImport__id otrzymały błąd w czasie wykonywania.

Każdy pomysł, w jaki sposób można odwzorować zmienną db za pomocą podkreślenia ze zmienną java, która później może zostać rozpoznana przez ElasticsearchCrudRepository?

Dzięki

+0

Wiem, że to stary post, ale siedzę z tym samym problemem. Czy znalazłeś jakieś rozwiązanie? – Anusha

Odpowiedz

1

z Spring Docs:

Jeśli nazwy właściwości zawierać podkreślenia (np first_name) można uciec podkreślenia w nazwie metody z drugim podkreślenia. Dla właściwości first_name metoda zapytania musiałaby mieć nazwę findByFirst__name (...).

Więc wydaje się prawidłowa byłaby findByImport__id

+0

To nie działa dla mnie od wiosny-danych-elasticsearch 1.2.0.RELEASE. – Siou