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。在指定所有这些映射后,它运行良好。
我正在使用 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。在指定所有这些映射后,它运行良好。