繁体   English   中英

好的做法,转移 id 还是 DTO 对象?

[英]Good practice, transfer id or DTO object?

我在程序中有一个方法负责下载消息

MessageReceived getMessageReceived(Long messageId,Long userId);

此时,它需要一个 long 值。 整个方法看起来像这样

@Override
public List<MessageReceived> getMessagesReceived(
        @NotNull @Min(1) Long userId
) throws ResourceNotFoundException {
    log.info("Called with userId {}", userId);

    Optional<UserEntity> user = this.userRepository.findByIdAndEnabledTrue(userId);
    user.orElseThrow(() -> new ResourceNotFoundException("No user found with id " + userId));

    return this.messageRepository.findByRecipientAndIsVisibleForRecipientTrueOrderByIdDesc(user.get())
            .stream()
            .map(MessageEntity::getReceivedDTO)
            .collect(Collectors.toList());
}

更好的做法是:发送用户 ID 本身或 dto USER 对象。 在控制器中,我可以指定 dto 对象方法,但我选择了 ID,因为在我看来,没有必要在此处发送带有附加字段的整个 DTO。 你怎么看待这件事?

只要你保持一致,我认为这并不重要。 如果你要在这里传递ID,那么你应该养成总是传递id而不是DTO的习惯。

我个人的偏好是始终通过 ID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM