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
Wiem, że to stary post, ale siedzę z tym samym problemem. Czy znalazłeś jakieś rozwiązanie? – Anusha