【发布时间】:2018-07-23 03:07:04
【问题描述】:
我有一个数据 JPA 实体,其中包含一个“价格”类型 Double。现在,用户需要能够根据该字段(最小值和最大值之间)过滤记录。现在的问题是,对于某些记录,数据库中的值可能为空。我的数据 JPA 存储库使用原生查询,例如“price BETWEEN :priceFrom AND :priceTo”。现在,如果用户未在过滤条件中指定任何内容,则应返回所有记录,包括价格为空的记录。但是,此查询不会返回这些记录。我知道,我可以使用查询“price IS NULL”创建一个新方法,并检查我的服务层中的过滤器值,如果未指定任何内容,则调用 null 版本。但是,我有多个具有相同要求的字段,这会导致需要维护很多重复的方法。有没有更好的方法来处理这种情况?
【问题讨论】:
标签: spring spring-boot spring-data spring-data-jpa