栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Spring Data JPA

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Data JPA

您需要

Specification
像这样的实用程序类

public class EntitySpecifications {    public static Specification<Entity> firstIdEquals(Optional<Long> firstId) {// or Long firstId. It is better to avoid Optional method parameters.        return (root, query, builder) ->  firstId.isPresent() ? // or firstId != null if you use Long method parameter builder.equal(root.get("firstId"), firstId.get()) : builder.conjunction(); // to ignore this clause    }    public static Specification<Entity> secondIdEquals(Optional<Long> secondId) {        return (root, query, builder) ->  secondId.isPresent() ?  builder.equal(root.get("secondId"), secondId.get()) : builder.conjunction(); // to ignore this clause    }}

然后你

EntityRepository
必须扩展
JpaSpecificationExecutor

@Repositorypublic interface EntityRepository     extends JpaRepository<Entity, Long>, JpaSpecificationExecutor<Entity> {}

用法:

@Servicepublic class EntityService {    @Autowired    EntityRepository repository;    public List<Entity> getEntities(Optional<Long> firstId, Optional<Long> secondId) {        Specification<Entity> spec =  Specifications.where(EntitySpecifications.firstIdEquals(firstId)) //Spring Data JPA 2.0: use Specification.where    .and(EntitySpecifications.secondIdEquals(secondId));        return repository.findAll(spec); }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376972.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号