我正在使用spring-data -mongodb执行crud操作(创建、读取、更新、删除),但是delete功能不起作用,我不知道为什么?这是我的代码。
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;
}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);
}在我的控制器中,我做到了。
patternRepository.findByName(patternName).forEach(pattern -> {
patternRepository.deleteById(pattern.getId());
result.put("status", 0);
result.put("message", "pattern deleted successfuly");
});发布于 2021-07-27 15:12:34
您的数据可能是由其他系统创建的,这些系统使用"_id“的不同表示形式(String说)。对于较新版本的spring data mongodb,您可以使用@MongoId而不是@Id来控制这一点。
在我的例子中,后者正确地删除了记录。
@Id private String id;产品
Remove using query: { "_id" : { "$oid" : "60ed51ce597826297941ade4"}} in collection: sample.@MongoId(FieldType.STRING) private String id;产品
Remove using query: { "_id" : "60ed51ce597826297941ade4"} in collection: sample.https://stackoverflow.com/questions/61852306
复制相似问题