如何解决单向与双向
我有一个基本的日记项目,并且与两个实体User和DiaryEntry建立了一对多的关系。问题是我有两种添加数据的方法,一种是双向的,另一种是uni的。双向方法的麻烦在于,我无法从最近添加到数据库中发送给用户的日记对象中获取ID,但是我不确定这实际上有多重要。另一种方法是使用单向,这使我可以直接添加日记对象并将其返回给用户,但是在线上的大多数建议是使用双向方法。任何建议都值得赞赏,因为我只是想熟悉Spring Rest应用程序的最佳方法。
public void createDiaryEntrynoresult(Long uId,DiaryEntryDTO diaryEntryDTO) {
userRepository.findById(uId)
.map(user -> {
DiaryEntry diaryEntry =
diaryEntryMapper.diaryEntryDTOToDiaryEntry(diaryEntryDTO);
user.addDiaryEntry(diaryEntry);
userRepository.save(user);
return user;
})
.orElseThrow(ResourceNotFoundException::new);
}
public DiaryEntryDTO createDiaryEntryWithResult(Long uId,DiaryEntryDTO diaryEntryDTO) {
DiaryEntry diaryEntry = diaryEntryMapper.diaryEntryDTOToDiaryEntry(diaryEntryDTO);
User user = userRepository.findById(uId).orElseThrow(ResourceNotFoundException::new);
diaryEntry.setUser(user);
DiaryEntry savedDiaryEntry = diaryEntryRepository.save(diaryEntry);
return diaryEntryMapper.diaryEntryToDiaryEntryDTO(savedDiaryEntry);
}
解决方法
“双向方法的麻烦在于,我无法从最近添加到数据库中发送给用户的日记对象中获取ID,但我不确定这实际上有多重要。”
调用保存方法后,该ID应该出现在saveDiaryEntry中。
没有“正确”的方法-取决于使用API的人。
那时他们是否需要响应中的ID或仅用于提供信息?如果由于某种原因您需要该ID来调用其他API方法,那么正确的方法当然是在响应中返回ID,否则可以不返回任何内容。
如果此时他们不需要ID,则仅返回“ 200 OK”或“ 201 No content”(无内容)响应是正确的方法,这完全取决于当时调用该API的人员的需求或者对他们来说更方便...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。