我正在制作一个 Spring Boot 应用程序,并且希望通过我的服务和控制器更新数据库中的现有条目。在我的服务层中,我有以下方法。因此,我检索与 caseID 关联的字段,创建一个模型映射器,将实体对象类映射到我的 VO,然后将检索到的数据映射到我的 DTO。然后我保存我的存储库。目的是仅添加我在请求消息中指定的字段,即如果我只想更新 20 个字段中的 1 个字段,它将更新此字段并保持其余字段不变。下面的代码运行成功,但是我在邮递员的请求消息中指定的字段不会在数据库中更新。为什么是这样?我尝试映射不同的对象并将不同的变量保存到存储库,但似乎没有任何内容可以更新数据库。
public StoredOutboundErrorCaseVO updateCase(OutboundErrorCaseVO outboundErrorCaseVO, Long caseNumber) {
OutboundErrorCaseData existingCaseData = ErrorCaseDataRepository.findById(caseNumber).get();
ModelMapper mm = new ModelMapper();
mm.getConfiguration().setAmbiguityIgnored(true);
OutboundErrorCaseData uiOutboundErrorCaseData = mm.map(outboundErrorCaseVO,
OutboundErrorCaseData.class);
mm.map(existingCaseData, uiOutboundErrorCaseData);
ErrorCaseDataRepository.save(uiOutboundErrorCaseData);
return mm.map(uiOutboundErrorCaseData, StoredOutboundErrorCaseVO.class);
}
控制器 - 为简洁起见,省略代码,POST 方法(我通常使用 PUT 进行更新,但我相信我仍然可以使用 POST)
StoredOutboundErrorCaseVO updatedCase = outboundErrorService.updateCase(outboundErrorCaseVO,
caseNumber);
回购协议
@Repository
public interface OutboundErrorCaseDataRepository extends JpaRepository<OutboundErrorCaseData, Long> {
30秒到达战场
守着一只汪
相关分类