微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

单向与双向

如何解决单向与双向

我有一个基本的日记项目,并且与两个实体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 举报,一经查实,本站将立刻删除。