1. Serializable 和 Lombok的关系


2. Spring MVC 中的 @PathVariable

功能:

使用场景:

  1. 路径中包含动态参数:
    • 例如一个路径 /order/{id}{id} 是动态参数。
@GetMapping("/order/{id}")
public Order getOrderById(@PathVariable("id") Long id) {
    return orderService.findById(id);
}
  1. 动态参数名称和方法参数不同:
    • 需要使用 @PathVariable("id")
  2. 多个路径变量:
@GetMapping("/order/{orderId}/detail/{detailId}")
public OrderDetail getOrderDetail(@PathVariable("orderId") Long orderId,
                                   @PathVariable("detailId") Long detailId) {
    return orderService.getOrderDetail(orderId, detailId);
}

什么情况不用绑定:

  1. 动态参数名称和方法参数名称一致,可以省略值的指定:
@GetMapping("/order/{id}")
public Order getOrderById(@PathVariable Long id) {
    return orderService.findById(id);
}
  1. 没有动态参数时:

3. SQL 错误解析

错误 1:SQL Syntax Error

错误 SQL例子:

select count(0) from (
   select * from orders
   WHERE status = ?
         user_id = ?  -- 缺少 AND
   order by order_time desc
) tmp_count;

修正后:

select count(0) from (
   select * from orders
   WHERE status = ?
         AND user_id = ?  -- 添加 AND
   order by order_time desc
) tmp_count;

错误 2:RedisConnectionException


4. Spring Boot @RequestParam@PathVariable

对比点 @PathVariable @RequestParam
取值源地点 URL 路径动态参数 Query参数或表单参数。
示例 /order/{id} /order?id=123
抽象性 适用于动态路径参数绑定 适用于请求参数绑定。
代码示例 @PathVariable("id") Long id @RequestParam("id") Long id
选填情况 默认为必填,没有值会报错