我试图在嵌入式文档中设置一个ID。在mongoDB的下一个级别中,使用spring数据。可以说我有一个用户文档,每个用户都有多个会话(一对多),我喜欢为会话获取自动生成的唯一ID。我该怎么办?我尝试为用户和会话创建以下实体,但会话ID始终为null !,请帮助
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document
public class User {
@Id
private String id;
private String emailId;
private String firstName;
private String lastName;
private ArrayList<Session> sessions;
}
public class Session {
@Id // i like to make this id auto generated and unique
private String id;
private String status;
private String title;
//assume all Args, Getters and setters are exists
您需要手动更新此唯一ID,因为在中似乎没有自动功能可以执行此操作spring-data-mongodb
。
就像是;
public Integer generateUniqueId() {
Session latestSession = sessionRepository.findTopOrderByIdDesc(); // latest session
return Optional.ofNullable(latestSession).map(Session::getId).orElse(-1) + 1;
}
其中唯一ID只是一个递增计数器...
并Session
在保存之前将此值设置为新值;
newSession.set(generateUniqueId());
sessionRepository.save(newSession);
欲了解更多详情,请点击这里
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句