findBy 查询方法在 spring 数据弹性搜索中不起作用

findBy query method not woking in spring data elasticsearch

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

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);    

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

仅供参考:

我在方法调用旁边指定了哪个方法有效,哪个方法无效。

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

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