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 复杂仓库接口] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

好好的时光》庄先进想不到,元媛先嫁刘成,后嫁大哥,结局赢麻(好好的时光演员表)

苏小曼逐渐被庄先进打动,最终两人还是结婚了,固然这一场婚姻不管是庄先进的三个孩子庄好好、庄学习、庄天天,以及苏小曼的两个孩子王元媛以及王元义都反对,但是这两人最终还是走到了一起。 但是他们却不顾世俗的偏见和…

《<strong>好好的时光</strong>》庄先进想不到,元媛先嫁刘成,后嫁大哥,结局赢麻(好好的时光演员表)

气动牙嵌式离合器CTHP平替ASAHI宜耐德LTP系列,选型有门道吗?(牙嵌式离合器设计手册)

正在寻找气动牙嵌式离合器CTHP的平价替代品?2026年市场上,ASAHI宜耐德LTP系列成为许多用户的优选方案。这些产品不仅具备卓越的性能表现,在预算范围内的性价比也非常突出。本篇文章从选型要点、实际应用细节及常见误区三个维度进行深度解读

气动牙嵌式离合器CTHP平替ASAHI宜耐德LTP系列,选型有门道吗?(牙嵌式离合器设计手册)

国民闺女关凌40岁!从贾圆圆到三孩妈,她如何活成人生赢家(国民闺女大结局)

2017年参加《跨界喜剧王》,台下观众笑声一片,她自己也憋不住笑场。2018年开始,她主持了《小童大艺》,还参加《了不起的孩子》。有一次,儿子眼角长了小东西,她守在床边一夜,那种担心几乎从文字里就能读出来。也…

国民闺女关凌40岁!从贾圆圆到三孩妈,她如何活成人生赢家(国民闺女大结局)

纯真年代的爱情》三大厕品改编:分房、偷钱、替身文学(纯真年代的爱情在线观看免费高清完整韩剧)

剧版中,房子却分给了方穆扬,费霓只得用一种略带恳求的语气问:房子有我一半可以吗?即使是为了填补剧版中父亲角色的遗憾,这种偷钱的行为也未免太过牵强。剧版的这段情节不仅不符合角色设定,甚至让人物形象产生了偏差,观…

《<strong>纯真年代的爱情</strong>》三大厕品改编:分房、偷钱、替身文学(纯真年代的爱情在线观看免费高清完整韩剧)

男子25年后跨半个地球回国认亲 寻根之旅圆满实现

2001年,4岁的张云鹏在沈阳走失,随后被送入福利院并改名沈华柏。三年后,他被加拿大夫妇收养,但因养父母离异,在寄养家庭中长大。2025年底,在海外志愿者的帮助下,张云鹏成功找到了亲生父母

男子25年后跨半个地球回国认亲 寻根之旅圆满实现