gpt4 book ai didi

java - 在 mongo 文档中创建自动增量字段

转载 作者:行者123 更新时间:2023-12-02 02:29:56 25 4
gpt4 key购买 nike

在我的 Spring Boot 应用程序中,我使用 Spring-Data MongoDB,并且有一个代表用户的简单 POJO:

@EqualsAndHashCode
public class User implements Storable {

@Id
public ObjectId id;

@Getter @Setter public String firstName;
@Getter @Setter public String lastName;
@Getter @Setter public long userNum;
@DBRef(lazy = true)
@Getter @Setter public List<Section> sections = new ArrayList<Section>();

...
rest of class omitted
...

}

我的 UserController 看起来像这样:

@Controller
public class UserController {

@Autowired
UserRepository repository;

@ModelAttribute("allSections")
public List<Section> getSections() {
return sectionRepository.findAll();
}

@RequestMapping(value = "/users/new", method = RequestMethod.POST)
public String newUser(@ModelAttribute("user") User user) {
User newUser = new User();
newUser.userNum = user.userNum;
newUser.firstName = user.firstName;
newUser.lastName = user.lastName;
newUser.sections = user.sections;
newUser = repository.save(newUser);

for (Section section : newUser.sections) {
section.addToUsers(newUser);
sectionRepository.save(section);
}

return "redirect:/users";
}
... rest of controller omitted
}

请注意,我想要自动生成的字段不是 ID 字段。

我希望 userNum 属性能够自动递增,以便创建并存储在数据库中的第一个用户对象以某个值开始......比如说 9000,之后创建的每个用户都是增加 1。

我有什么选择来做到这一点?我看过使用 JPA 的 @GenerateValue 的示例,其他示例依赖自定义 Mongo 查询来创建序列集合,但我无法让其中任何一个工作......

最佳答案

创建计数器集合:

public class Counter {

@Id
private String id;

private long seq;

public Counter(String id, long seq) {
this.id = id;
this.seq = seq;
}

// Getters and setters
}

然后是 MongoRepository:

@Repository
public interface CounterRepository extends MongoRepository<Counter, String> {}

还有一个服务/DAO:

@Service
public class CounterServiceImpl implements CounterService {

@Autowired
private CounterRepository counterRepository;

@Override
public long getNext(String sequenceId) {
Counter counter = counterRepository.findOne(sequenceId);
long id = counter.getSeq();
counter.setSeq(id + 1);
counterRepository.save(counter);
return id;
}
}

关于java - 在 mongo 文档中创建自动增量字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47291190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com