Kaa*_*rde 4 java spring mongodb
我有带有 MongoDB 的 Spring Web 应用程序。目前我总是从数据库中永久删除数据。
@Repository
public class SessionRepository extends CrudRepository implements SessionService {
...
@Override
public void insert(Session session) {
saveRoom(session);
getTemplate().insert(session);
}
@Override
public void delete(Session session) {
getTemplate().remove(session);
}
...
}
Run Code Online (Sandbox Code Playgroud)
将其更改为软删除的好方法是什么?
----------------- 编辑 1 -------------------
我现在明白我应该做什么的逻辑了,感谢 Sarath Nair。但我不确定如何在 Spring 中实现这一点。我有一个 Session 对象:
@Document(collection = "session")
public class Session {
@Id
private String id;
private Date startDate;
private Date endDate;
//I just put this here
private boolean deleted = false;
public boolean isDeleted() {
return deleted;
}
public void setDeleted(boolean deleted) {
this.deleted = deleted;
}
...
}
Run Code Online (Sandbox Code Playgroud)
我希望该字段boolean isDeleted出现在数据库中,但我不想通过 Web 服务将该信息发送出去。
@Transient不好,因为该字段不会出现在数据库中,也不会出现在 HTTP 响应中。现在我正在发送deleted: false我的 HTTP 响应。
我应该如何编辑我的 Session 类?
is_deleted在集合中有一个额外的字段。插入is_deleted为false新文档。当您删除时,只需将此值更新为该true文档。每当您需要从集合中读取文档时,请为集合传递is_deleted : false。
| 归档时间: |
|
| 查看次数: |
7738 次 |
| 最近记录: |