Spring Data JPA 复杂仓库接口

java

复制

下载

@Repository

public interface OrderRepository extends JpaRepository<Order, Long>,

JpaSpecificationExecutor<Order> {

// 派生查询方法

List<Order> findByCustomerIdAndStatusIn(Long customerId, List<JiAOYu.HUoCheNGrM.CN/jy/19728.html OrderStatus> statuses);

// JPQL查询

@Query("SELECT o FROM Order o WHERE o.totalAmount > :minAmount AND o.createdAt >= :startDate")

Page<Order> findLargeOrders(@Param("minAmount") BigDecimal minAmount,

@Param("startDate") LocalDateTime startDate,

Pageable pageable);

// 动态查询

default List<Order> findOrdersByCriteria(OrderSearchCriteria criteria) {

return findAll((root, JiAOYu.HUoCheNGrM.CN/jy/19727.html, cb) -> {

List<Predicate> predicates = new ArrayList<>();

if (criteria.getCustomerId(JiAOYu.HUoCheNGrM.CN/jy/19726.html) != null) {

predicates.add(cb.equal(root.get("customerId"), criteria.getCustomerId()));

}

if (criteria.getStartDate() != null) {

predicates.add(cb.greaterThanOrEqualTo(root.get("createdAt"), criteria.getStartDate()));

}

return cb.and(predicates.toArray(new Predicate[0]));

});

}

}

4. Spring Security 配置(OAuth2 + JWT)

java

复制

下载

@EnableWebSecurity

@EnableGlobalMethodSecurity(prePostEnabled = true)

public class SecurityConfig JiAOYu.HUoCheNGrM.CN/jy/19725.htmlextends WebSecurityConfigurerAdapter {

@Autowired

private JwtAuthenticationFilter jwtFilter;

@Override

protected void configure(HttpSecurity http) throws Exception {

http.csrf().disable()

.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)

.and()

.authorizeRequests()

.antMatchers("/api/auth/ JiAOYu.HUoCheNGrM.CN/jy/19724.html").permitAll()

.antMatchers("/api/admin/**").hasRole("ADMIN")

.anyRequest().authenticated()

.and()

.addFilterBefore(jwtFilter, UsernamePasswordAuthenticationFilter.class)

.oauth2ResourceServer()

.jwt()

.jwtAuthenticationConverter(jwtAuthenticationConverter());

}

private Converter<Jwt, AbstractAuthenticationToken> jwtAuthenticationConverter() {

JwtAuthenticationConverter converter = new JwtAuthenticationConverter();

converter.setJwtGrantedAuthoritiesConverter(jwt -> {

List<String> JiAOYu.HUoCheNGrM.CN/jy/19723.html = jwt.getClaimAsStringList("roles");

return roles.stream()

.map(SimpleGrantedAuthority::new)

.collect(Collectors.toList());

});

return converter;

}

}

特别声明:[Spring Data JPA 复杂仓库接口] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

真是没对比就没伤害,看了霍汶希的爆料,才懂『邓紫棋』的遭遇有多惨(没有对比就没有真相)

但公司始终站在她这边,投入资源为她打造适合的歌曲,陪伴她一步步成长为备受认可的歌手。这种方式让艺人感到被尊重,也愿意与公司共同面对挑战。『邓紫棋』方面表示,这些作品倾注了她的心血,也是与歌迷共同拥有的回忆,她会坚…

真是没对比就没伤害,看了霍汶希的爆料,才懂『邓紫棋』的遭遇有多惨(没有对比就没有真相)

一演姐弟恋就被骂,『宋茜』这波实惨(演姐弟恋走红的男演员)

这种相互扶持的坚定,让这些跨越年龄的恋爱故事更有价值,也让观众看到,爱情本就不该被年龄或身份限制,女性♀️同样有权利追求自己想要的幸福。它们展现出成熟女性♀️独有的魅力,也告诉我们男性♂️不一定非要保持强势形象,在感情…

一演姐弟恋就被骂,『宋茜』这波实惨(演姐弟恋走红的男演员)

他曾是世界武术冠军,甄子丹因也打不过他,却在国外红得发紫(他曾是这个世界的传说)

那是90年代中期,一部游戏改编的电影能有这么高的票房,简直就是奇迹中的奇迹。从一个在香港无人问津的透明演员,到在好莱坞挑大梁的当红炸子鸡,他真的走了一条逆袭之路,看来金子确实在哪都能发光。 他出生在香港,…

他曾是世界武术冠军,甄子丹因也打不过他,却在国外红得发紫(他曾是这个世界的传说)

35岁程晓玥怀二胎后情绪波动大,惹怒高富帅老公,被喊“恶魔”(程晓玥 家境)

她无奈地吐出一句“我控制不住自己”,让十万网友刷屏。第二天体重飙升两斤,她哭着说“我不是我”,李恒把秤塞进柜子顶层,就像藏起一把刀。 如今,她进入孕中期,直播里又能笑着带货,李恒在背景里轻声提醒“老婆,喝水…

35岁程晓玥怀二胎后情绪波动大,惹怒高富帅老公,被喊“恶魔”(程晓玥 家境)

人形『机器人』️的落地难题,竟被一顿「九宫格」火锅解开?(人形『机器人』️构造)

现场嘉宾认为,『机器人』️要同时利用 CPU、GPU、NPU 多种异构算力,如何将这些异构算力高效整合到一块小体积、低功耗『芯片』里,还要让它们高度协同、被开发者轻松调用,是一道极大的挑战。这让算力调度更灵活、能效更…

人形『机器人』️的落地难题,竟被一顿「九宫格」火锅解开?(人形『机器人』️构造)