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

时间:2017-09-28 21:40:51

标签: java spring spring-mvc spring-boot dto

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

MessageReceived getMessageReceived(Long messageId,Long userId);

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

@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。你觉得怎么样?

1 个答案:

答案 0 :(得分:1)

只要你保持一致,我认为这不重要。如果您要在此处传递ID,那么您应该养成一直习惯于传递ID而不是DTO。

我个人的偏好是始终传递ID。