首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring-data-mongodb删除函数不起作用吗?

spring-data-mongodb删除函数不起作用吗?
EN

Stack Overflow用户
提问于 2020-05-17 21:08:33
回答 1查看 112关注 0票数 0

我正在使用spring-data -mongodb执行crud操作(创建、读取、更新、删除),但是delete功能不起作用,我不知道为什么?这是我的代码。

代码语言:javascript
复制
import org.bson.types.Binary;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@ToString
@Getter
@Setter
@Document(collection = "patterns")
public class Pattern {
    @Id
    @Field
    private String id;
    @Field
    @Indexed(unique = true)
    private String name;
    @Field
    private String status;
    @Field
    private Binary patternFile;
}
代码语言:javascript
复制
import java.util.List;
import org.springframework.data.mongodb.repository.MongoRepository;
import fod.pfe7.administratorportal.domain.Pattern;
public interface PatternRepository extends MongoRepository<Pattern, String> {
    List<Pattern> findByName(String name);
}

在我的控制器中,我做到了。

代码语言:javascript
复制
patternRepository.findByName(patternName).forEach(pattern -> {
            patternRepository.deleteById(pattern.getId());
            result.put("status", 0);
            result.put("message", "pattern deleted successfuly");
        });
EN

回答 1

Stack Overflow用户

发布于 2021-07-27 15:12:34

您的数据可能是由其他系统创建的,这些系统使用"_id“的不同表示形式(String说)。对于较新版本的spring data mongodb,您可以使用@MongoId而不是@Id来控制这一点。

在我的例子中,后者正确地删除了记录。

@Id private String id;产品

代码语言:javascript
复制
Remove using query: { "_id" : { "$oid" : "60ed51ce597826297941ade4"}} in collection: sample.

@MongoId(FieldType.STRING) private String id;产品

代码语言:javascript
复制
Remove using query: { "_id" : "60ed51ce597826297941ade4"} in collection: sample.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61852306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档