Spring Framework. Сигнатура сервисных методов

183
23 ноября 2017, 03:09

Насколько мне известно, методы сервиса должны принимать и возвращать DTO. Получается, что в контроллере при вызове методов из сервиса иногда мне приходится писать что-то вроде примеров 1,2

messageService.findByRoomAndUser(RoomDTO.forId(16),UserDTO.forId(10));//1
messageService.findByRoomAndUser(roomDTO,userDTO);//2
messageService.findByRoomAndUser(16,10);//3
messageService.findByRoomAndUser(roomDTO.getId(),userDTO.getId());//4

В 1 примере сложнее перепутать местами параметры, что плюс. Стоит ли создавать новые обьекты как в примере 1 чтобы не писать код вроде:

MessageDTO findByRoomAndUser(RoomDTO room, UserDTO user) {
return findByRoomAndUser(room.getId(),user.getId());
}
MessageDTO findByRoomAndUser(Long roomId, Long userId) {
//код функции
}

Или все-же делать методы, которым нужен только идентификатор, согласно примеру 3, а при их вызове для объектов использовать getId() ?

Answer 1

Я бы на вашем месте сделал разделение:
1. RoomDTO findByRoom(id) и
2. UserDTO findByUser(id),
а после найденных RoomDTO и UserDTO передать, например, в конструктор -
return new MessageDTO(room, user)

READ ALSO
нужно сделать мигание JButton

нужно сделать мигание JButton

надо сделать анимацию из кнопок

147
java отображение степени

java отображение степени

Возможно ли в Java, как в Word, записать число в степени в переменную типа StringПри этом считать его? Знаю что возможно записать степень числа как:

177
Вывести определенный html с помощью jquery

Вывести определенный html с помощью jquery

Есть такая задачаПри определенном разрешении экрана нужно вывести определенный код html

217