SpringMongoDB有些字段根本没有保存或更新

5tmbdcev  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(373)

我正试图在中保存一个文档 MongoDB 通过收集 MongoRepository.save 方法。这是我的密码。
文档类:

  1. @Document(collection = "appointments")
  2. public class AppointmentDocument extends AbstractCommonDocument {
  3. @Id
  4. private ObjectId _id;
  5. @DBRef(lazy = true)
  6. private ServiceDocument service;
  7. @DBRef(lazy = true)
  8. private FeedbackDocument feedback;
  9. private String status;
  10. private String appointmentType;
  11. private String description;
  12. private EmbeddedPeriod period;
  13. private EmbeddedPeriod requestedPeriod;
  14. @Deprecated
  15. private ProviderFeedback providerFeedback;
  16. private List<Participant> participants;
  17. private List<AppointmentResponse> appointmentResponses;
  18. @Deprecated
  19. private AppointmentPayment paymentDetails;
  20. private CommunityPayment prePayment;
  21. private CommunityPayment postPayment;
  22. private boolean requestedByPatient;
  23. @Deprecated
  24. private DateTime acceptedAt;
  25. private DateTime requestedAt;
  26. private DateTime confirmedAt;
  27. private DateTime cancelledAt;
  28. private DateTime completedAt;
  29. private String requestMessage;
  30. private String mondayId;
  31. ...getters & setters
  32. }

存储库:

  1. @Repository
  2. public interface AppointmentRepository extends MongoRepository<AppointmentDocument, String> {
  3. }

保存记录的代码。

  1. AppointmentDocument appointmentDocument = new AppointmentDocument();
  2. // ...omitted set calls for other fields for brevity
  3. appointmentDocument.setRequestedByPatient(!isProvider);
  4. appointmentDocument.setRequestedAt(requestedAt);
  5. appointmentDocument.setRequestMessage(request.getComment());
  6. appointmentDocument = appointmentRepository.save(appointmentDocument);

问题是所有字段都保存在数据库中,除了 requestedAt 以及 requestMessage 现场。没有错误日志,我已启用 MongoDB 它似乎正在发送包含所有字段的insert查询。

  1. DEBUG o.s.data.mongodb.core.MongoTemplate - 2021-04-21 19:22:58 - Inserting Document containing fields: [service, status, period, requestedPeriod, participants, appointmentResponses, prePayment, requestedByPatient, requestedAt, requestMessage, createdAt, lastModified, _class] in collection: appointments

我还是看到了 requestedAt 以及 requestMessage 数据库中的文档中缺少。
我还尝试在通过保存文档后更新记录 mongoTemplate.updateFirst 方法。还是不走运。这是密码。

  1. mongoTemplate.updateFirst(
  2. new Query(where("_id").is(appointmentDocument.get_id())),
  3. new Update()
  4. .set("requestedAt",requestedAt)
  5. .set("requestMessage", request.getComment()),
  6. AppointmentDocument.class
  7. );

我再次看到更新日志。。

  1. DEBUG o.s.data.mongodb.core.MongoTemplate - 2021-04-21 19:22:58 - Calling update using query: { "_id" : { "$oid" : "60807b92adbe1d0001c2bed6" } } and update: { "$set" : { "requestedAt" : { "$date" : 1619032978091 }, "requestMessage" : "Dummy Request message" } } in collection: appointments

还是不走运。我不知道为什么会这样。请帮忙。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题