我想在Spring中删除基于Id的记录。 但在数据库中,id值是object EX: -
id: Object(34562341112313)
如何在Spring中删除此记录?
答案 0 :(得分:1)
你喜欢这样:
public void deleteRecord() {
MongoOperations mongoOperation = (MongoOperations) ctx.getBean("mongoTemplate");
Query searchQuery = new Query(Criteria.where("id").is(34562341112313));
mongoOperation.remove(searchQuery, Your_entity_class.class);
logger.info("Delete success");
}
这是我的现实例子:
/**
* Delete by condition(s).
*/
public void deleteJob() {
MongoOperations mongoOperation = (MongoOperations) ctx.getBean("mongoTemplate");
Query searchQuery = new Query(Criteria.where("company").is("DCV"));
mongoOperation.remove(searchQuery, Job.class);
logger.info("Đã xóa các công việc đăng bởi DCV.");
}
参考:http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/
答案 1 :(得分:0)
你应该删除它:
@Repository
public class AppDaoClass{
@Autowired
MongoTemplate mongoTemplate;
@Override
public void deleteSomething(String somethingId) {
mongoTemplate.remove(Query.query(Criteria.where("somethingId").is(somethingId)), Ticket.class);
}
}
第一个“somethingId”是你在模型中给出的名字,第二个是用于你在方法中给出的Parametar 。
您的域名模型:
@Document
public class Model {
@Id
private String somethingId;
private String someName;
private String someOtherName;
}
请务必为您的班级 @Document 和 @Repository 添加适当的注释。并在您的ID字段中添加 @Id 注释。
希望这会有所帮助。
答案 2 :(得分:0)
这是使用MongoTemplate删除Spring数据mongoDB中的记录的方法
WriteResult writeResult=mongoTemplate.remove(query,"collection_name");
OR
WriteResult writeResult=mongoTemplate.remove(query,EntityClassName.class);
您还可以使用存储库模式
@Document(collection = "user")
public class User {
@Id
private String id;
private String username;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
@Repository
public interface UserRepository extend MongoRepository<User, String>{
public void delete(String id);
public void delete(User user);
public void deleteByUsername(String username);
}
您可以在任何地方使用这些方法删除记录,也可以编写自定义方法