java - 我是否需要在 Mongo 的这个 POST 请求中进行事务处理?
问题描述
我创建了这样的方法,我只处理一个集合。首先它检查是否已经有记录,然后保存文档。
public CarrierRating createCarrierRating(final CarrierRatingRequest carrierRating, final String domain) {
final var rating = this.carrierRatingRepo.findByVendorIdAndDeliveryMode(carrierRating.getVendorId(),
carrierRating.getDeliveryMode());
if (!rating.isEmpty()) {
throw new BadRequestException(
new ErrorInfo(HttpStatus.BAD_REQUEST.name(), CommonConstants.CARRIER_RATING_ALREADY_EXISTS));
}
final var cRating = new CarrierRating();
cRating.setVendorId(carrierRating.getVendorId());
cRating.setDeliveryMode(carrierRating.getDeliveryMode());
cRating.setRating(carrierRating.getRating());
cRating.setCreatedAt(Instant.now());
cRating.setCreatedBy(UserRequestContext.getUserId());
cRating.setDomainId(domain);
return this.carrierRatingRepo.save(cRating);
}
我得到了一些关于编写 API 的评论,可能会有@Transactional
. 我真的需要这个注释吗?我也没有 Mongo @Configuration
,看来我必须在这里添加配置
解决方案
推荐阅读
- c++ - 在 C++ 中,发生故障后是否需要 stream.clear()?
- javascript - 使用 Polymer.dom(this.root).querySelector 在 Polymer 元素中找不到复选框元素
- grails - Postgresql 和 Grails 3.3.8 的默认字符串大小似乎是 20 个字符
- json - 使用 Express 返回特定的 JSON 对象
- python - 如何在 SQLAlchemy DB URI 中定位 PostgreSQL 模式?
- html - 从下到上垂直对齐文本
- javascript - 试图学习 addEventListener 并且我的代码不起作用
- python - 为什么在 py37 环境中安装 numpy 时需要指定“anaconda”通道
- angular - Angular 到 Spring Boot 微服务连接错误
- python - 如何在此处最小化代码以使其在 python3 中的内存效率更高?