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

SpringBoot整合Mongo调用deleteById报错未找到Profile类标识属性如何解决

问题原因

该异常是因为Spring Data MongoDB操作要求关联的实体类必须声明标注了@Id注解的主键字段,对应MongoDB文档默认的_id主键字段,你的Profile实体类目前没有配置主键属性,所以调用existsById、deleteById这类依赖主键的方法时就会抛出找不到标识符属性的异常。
你之前可以正常插入数据是因为MongoDB插入文档时会自动生成_id字段,不需要你主动传值,但实体层没有做映射的话,Spring Data就无法识别对应的主键字段。

解决步骤

  1. 修正Profile实体类,添加@Id标注的主键字段,同时修正你代码里的字段类型拼写错误(Stirng改为String),修正后代码如下:
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import lombok.Data;
import lombok.Builder;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

@Data
@Document
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Profile {
    // 对应MongoDB文档的_id主键字段
    @Id
    private String id;
    private String birthDate;
    private String city;
    private String country;  
}
  1. 重启项目即可生效,新增的id字段不需要你主动赋值,插入数据时MongoDB自动生成的主键会自动映射到该字段,后续按ID查询、删除操作都可以正常执行。
  2. 之前已经插入的旧数据不需要修改,新增的主键字段会自动映射旧数据的_id值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:24:02