【问题标题】:How to implement advanced search functionality in Spring MVC with Spring Boot?如何使用 Spring Boot 在 Spring MVC 中实现高级搜索功能?
【发布时间】:2018-09-19 07:01:19
【问题描述】:

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

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

在 Spring Boot 中执行此操作的最佳方法是什么?

【问题讨论】:

标签: java spring spring-boot


【解决方案1】:

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

下面的例子

@Entity
@Indexed
public class Car {
    @Column(name = "name")
    @Field
    private String name;

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


}

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

@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();
    }
}

【讨论】:

  • 我有大约 16 个属性(司机 + 汽车)。我不想指定每个字段。另外,我想检索汽车名称为“XYZ”的司机列表。搜索条件可以是任何东西。
猜你喜欢
  • 1970-01-01
  • 2018-11-11
  • 1970-01-01
  • 2019-01-09
  • 2014-07-02
  • 1970-01-01
  • 2018-07-07
  • 2020-01-01
  • 1970-01-01
相关资源
最近更新 更多