首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Spring MVC中使用Spring Boot实现高级搜索功能?

如何在Spring MVC中使用Spring Boot实现高级搜索功能?
EN

Stack Overflow用户
提问于 2018-09-19 15:01:20
回答 1查看 1.4K关注 0票数 0

我是Spring Boot的新手。我正在实现微服务架构。我有两个实体driver和car。司机和汽车之间是一对一的关系。一名驾驶员只能选择一辆车,一辆车只能由一名驾驶员选择。

我想实现高级搜索功能。应该可以通过司机的属性(用户名、online_status)以及汽车特征(牌照号、汽车名称等)来搜索司机。我使用数据库作为H2 (在内存中)。我想避免嵌套的if和else。

在Spring Boot中做到这一点的最好方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2018-09-19 17:08:57

我认为最好的方法是在你的代码中启用hibernate-search模块。为此,您可以使用索引和字段注释。

下面的例子

代码语言:javascript
复制
@Entity
@Indexed
public class Car {
    @Column(name = "name")
    @Field
    private String name;

    @Column(name = "license_number")
    @Field
    private Integer licenseNumber;


}

在此之后,您可以在服务层中使用搜索功能

代码语言:javascript
复制
@Service
public class CarServiceImpl implements CarService {

    @PersistenceContext
    private EntityManager entityManager;

@Override
    @Transactional
    public List<Car> search(Sting name, String licenseNumber) {
        FullTextSearchBuilder builder = new FullTextSearchBuilder(entityManager, Car.class);
        builder.appendAndQuery(name, "name");
        builder.appendAndQuery(licenseNumber, "licenseNumber");
        FullTextQuery fullTextQuery = builder.createFullTextQuery();
        return (List<Car>) fullTextQuery.getResultList();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52399968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档