我将客户记录保存在Mongo DB中,我使用Angular 6作为前端。 保存时,我没有发送ID值,因此Mongo自动创建ID并保存记录。
我正在Java中使用MongoRepository进行保存。但是在执行“ deleteById”或“ findById”时,它无法搜索或删除这些记录。
可以帮忙吗?
有角度的客户模型
export interface Customer {
id : string,
custId : number,
customerName : string,
email: string,
phone : string,
age: number,
city : string,
state : string,
createdDate : Date
}
User.service.ts
deleteCustomerData(id): Observable<Customer>{
console.log(this.deleteCustomerUrl + id);
return this.http.delete<Customer>(this.deleteCustomerUrl + id);
}
Java控制器
@DeleteMapping("/deleteCustomer/{id}")
public String deleteCustomerById(@PathVariable String id) {
//ObjectId objId = new ObjectId(id);
customerService.deleteCustomerById(id);
return "deleted customer by id"+ id;
}
Java服务
public void deleteCustomerById(String id) {
customerRepository.deleteById(id);
}
Java模型
@Document(collection="Customer")
public class Customer {
@Id
private String Id;
private String customerName;
private int age;
private String city;
private String state;
private int custId;
}
Java存储库
package com.tivo.extract.config.repository;
import org.springframework.data.mongodb.repository.MongoRepository;
import com.tivo.extract.config.model.Customer;
public interface CustomerRepository extends MongoRepository<Customer, String>{
}
答案 0 :(得分:0)
问题是主字段的数据类型需要从String更改为ObjectId。 默认情况下,Mongo db使用ObjecId作为主键类型。