如何使用mongoDB和spring数据在嵌入式文档中创建id

时间:2019-07-06 10:55:18

标签: mongodb spring-data-jpa spring-data-mongodb

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

1 个答案:

答案 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