Вы можете использовать ModelMapper при преобразовании DTO в bean-компонент Entity и обратно из Entity-bean-компонента в DTO.
Добавьте ModelMapper в свой проект
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>2.3.5</version>
</dependency>
Определите bean-компонент ModelMapper в вашем Конфигурация Spring
@Bean
public ModelMapper modelMapper() {
return new ModelMapper();
}
Предполагается, что следующие модели основаны на данной ER-диаграмме, которую вы предоставили
public class UserDto {
Integer userId;
String role;
String username;
String password;
boolean enabled;
...default and parameterized constructor
...getter and setter methods
}
public class ProductDto {
Integer productId;
String imageUrl;
String category;
int productPrice;
int productQuantity;
String productName;
String productDesc;
...default and parameterized constructor
...getter and setter methods
}
public class RatingDto {
@Id
Integer id;
int rating;
String review;
String ratingscol;
ProductDto productDto;
UserDto userDto;
...default and parameterized constructor
...getter and setter methods
}
Вы можете получить оценки продукта, используя идентификатор продукта вместе с данными пользователя, используя следующий метод
@Repository
public interface RatingRepository extends JpaRepository<Rating, Integer>{
List<Rating> findByProduct_ProductId(Integer productId);
}
Затем сопоставьте объекты рейтинга с DTO
RatingDto ratingDto = modelMapper.map(rating, RatingDto.class);
Теперь вы можете получить имя пользователя следующим образом:
ratingsDto.getUserDto().getUserName()
Таким же образом вы можете получить оценки по userId и доступ к сведениям о продукте