如何使用 mongoDB 和 spring 数据在嵌入文档中创建一个 id
how to create an id within the embedded document using mongoDB and spring data
我正在尝试在嵌入式文档中设置一个 ID。在 mongoDB 的下一级,使用 spring 数据。
假设我有一个用户文档,每个用户都有多个会话(一对多),我想为会话获取一个自动生成的唯一 ID。我该怎么做?我已尝试为用户和会话创建以下实体,但会话中的 ID 始终为空!请帮助
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);
有关详细信息,请查看 here
我正在尝试在嵌入式文档中设置一个 ID。在 mongoDB 的下一级,使用 spring 数据。 假设我有一个用户文档,每个用户都有多个会话(一对多),我想为会话获取一个自动生成的唯一 ID。我该怎么做?我已尝试为用户和会话创建以下实体,但会话中的 ID 始终为空!请帮助
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);
有关详细信息,请查看 here