Aktywne Wpisy

Sonny86 +619
źródło: temp_file6225500220203847679
Pobierz
Sonny86 +188
źródło: temp_file3593323373229408658
PobierzSkopiuj link
Skopiuj link
źródło: temp_file6225500220203847679
Pobierz
źródło: temp_file3593323373229408658
PobierzRegulamin
Reklama
Kontakt
O nas
FAQ
Osiągnięcia
Ranking
#java
Powiedzcie mi jak unika się podejścia encja na twarz?
Wymyśliłem coś takiego nie wiem czy to jest dobre.
Mam w bazie encje przedstawioną w kodzie mniej więcej tak:
@ Entityclass RoomEntity{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@ NotNull @ NotEmpty
Sting name;
}
mapuje ją sobie na "obiekt domenowy"
'class Room{
private Long id;
Name name;
}'
do tego DTO typu
'class RoomDTO{
private Long id;
Name name;
}'
Zarówno klasa Room jak i Name będą stworzone tak, że nie ma "gołych" setterów tylko są metody dostępowe, które robią validacje odpowiednią
no i kod servisu wyglądałby wtedy mniej więcej tak:
'def create(RoomDTO dto){
Room room = mapper.mapToDomainObject(dto);
{validacja i inna logika hehe biznesowa, jak jest jakiś błąd to leci wyjątek obsługiwany w jakimś handlerze i rzucany odpowiedni JSON z powodem erroru};
//tutaj object już jest git można go zapisać
entity = mapper.mapToEntity(room):
save(entity);
}'
dobra widzę, że się walnąłem bo mam id w DTO, a ono powinno być autogenerowane na samym dole na poziomie encji
walidacja typu @ NotNull @ NotEmpty też powinna być na DTO
nie wiem co jeszcze w sumie
sam pomysł robienia tego pośredniego obiektu pomiędzy DTO, a encją jest dobry?
Komentarz usunięty przez autora