im试图在嵌入式文档中设置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
答案 0 :(得分:0)
您需要手动更新此唯一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);
有关更多详细信息,请选中here