2014-09-03 19 views
5

:Parametre aşağıdaki değişkenlerle bir @Document "Proje" sınıf var

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

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

Benim JSON aşağıdaki

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

gibidir Ve @Repository sınıftır gibi:

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

sorun findByImportId herhangi almıyor olmasıdır data, findByTitleLike iyi çalışıyor ve veri getirmeme izin verirken, farklı yapılandırmalarla denedim, ancak SpringData, @JsonProperty yapılandırılmış olsa bile, import_id tarafından arama yapması gereken alanı çözmüyor gibi görünüyor. Ayrıca, değişken adını import_id (getter ve setter) olarak değiştirmeyi denedim, ancak bu durumda findByImport_Id'yi kullanmaya çalıştığımda findByImport_id, findByImport__Id veya findByImport__id çalışma zamanında bir hata bulmaya çalıştım.

Herhangi bir fikir, daha sonra ElasticsearchCrudRepository tarafından tanınan bir java değişkeni ile bir db değişkenini bir alt çizgi ile nasıl eşleyebilirim?

Teşekkür Spring Docs den

+0

findByImport__id olacağını, ama aynı sorunu ile şaşırıp görünüyor. Herhangi bir çözüm buldunuz mu? – Anusha

cevap

1

:

sizin özellik adları içeriyor

ise alt çizgi (örneğin first_name) ikinci bir çizgi ile yöntem adına çizgi kaçabilir. Bir first_name özelliği için sorgu yönteminin findByFirst__name (…) olarak adlandırılması gerekir.

yüzden doğru bu eski bir yazı olduğunu biliyoruz

+0

Bu benim için bahar-veri-elasticsearch 1.2.0.RELEASE olarak çalışmıyor. – Siou

İlgili konular