You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java拍卖平台标题搜索接口Optional查询参数编写问题排查

问题排查与修改方案

现有代码的核心问题

  • 接口定义不符合需求:要求是在原有list()接口上新增参数,而非单独新增searchByTitle接口;@RequestMapping的value属性配置非法,GET请求不允许用@RequestBody接收查询参数,应该改用@RequestParam注解接收title_like查询字符串参数,同时设置可选、默认值为空字符串。
  • 业务逻辑完全错误:MemoryAuctionDao已经提供了searchByTitle方法可以直接返回符合条件的商品列表,不需要自行循环遍历;原有判断逻辑dao.searchByTitle(title_like).contains(title_like)完全不成立,该方法返回的是Auction对象列表,不可能匹配String类型的搜索词。
  • 返回值不符合要求:搜索词为空时返回了null,按照要求应该返回全量拍卖商品列表;循环中直接修改全局auctions列表并提前返回,会导致全局数据污染,且仅能返回第一个匹配的商品,不符合返回所有匹配结果的要求。

正确实现代码

// 直接修改原有list接口,无需新增单独接口
@RequestMapping(value = "/auction/list", method = RequestMethod.GET)
public List<Auction> list(@RequestParam(value = "title_like", required = false, defaultValue = "") String titleLike) {
    if (!titleLike.isEmpty()) {
        // 直接调用dao提供的搜索方法返回匹配结果
        return dao.searchByTitle(titleLike);
    }
    // 无搜索参数时返回原有全量列表即可
    return dao.listAll();
}

注:如果原有list()接口的默认分支已经实现了全量列表返回逻辑,仅需新增参数和搜索分支即可,不需要修改原有默认逻辑。

内容的提问来源于stack exchange,提问作者user15764259

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:45:01