【问题标题】:findBy query method not woking in spring data elasticsearch春季数据弹性搜索中的findBy查询方法不工作
【发布时间】:2015-09-28 13:44:07
【问题描述】:

我正在使用 Spring-data-elasticsearch 插件从 elasticsearch 服务器检索信息。 下面是存储库类:

public interface ActorRepository extends ElasticsearchRepository<Actor, Integer> {
    public Actor findByActorId(Integer actorId);
    public Iterable<Actor> findByFirstName(String firstName);
    public Page<Actor> findByLastName(String lastName, Pageable pageable);
    //public Iterable<Actor> findByLastName(String lastName);
}

ActorRepository 的使用:

@Resource
ActorRepository actorRepository;
Actor actor1 = this.actorRepository.findOne(actorId); // Working perfectly
System.out.println("findOne Method :" + actor1);
Iterable<Actor> actors = this.actorRepository.findAll(); // Works perfectly
for(Actor actor : actors) {
    System.out.println("Each Actor :" + actor);
}

Actor actor214 = this.actorRepository.findByActorId(214); // Not working. Reurning null
System.out.println("findByActorId214 :" + actor214);    

我从上述方法调用中得到空响应。我不知道我在这里错过了什么。

仅供参考:

我已经在方法调用旁边指定了哪个方法有效,哪个方法无效作为注释。

如果您需要更多信息,请告诉我。在此先感谢您的帮助。

【问题讨论】:

    标签: java elasticsearch repository spring-data-elasticsearch


    【解决方案1】:

    我注意到的问题是由于 POJO 与 elasticsearch 数据的映射不正确。我在 POJO 中使用嵌套对象。所以我应该使用@Field spring 注释将嵌套字段类型指定为 FieldType.Nested。指定所有这些映射后,它运行良好。

    【讨论】:

    • 对我不起作用。 FindAll 工作正常,而 findBy 返回空结果。尝试过不同的 By 语句。有什么帮助吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多