我使用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);
我从上面的方法调用得到null响应。我不知道我在这里失踪了什么。
供参考:
我已指定哪个方法正常工作,哪个方法在方法调用旁边不起作为注释。
如果您需要更多信息,请与我们联系。在此先感谢您的帮助。
答案 0 :(得分:0)
我注意到的问题是由于POJO与弹性搜索数据的映射不正确。我在POJO中使用嵌套对象。所以我应该使用@Field spring注释将嵌套字段类型指定为FieldType.Nested。在指定了所有这些映射后,它运行良好。