Spring JPA: нет данных конвертера из БД в DTO - PullRequest
0 голосов
/ 29 июня 2019

У меня есть собственный запрос в моем репозитории.И я создал интерфейс DTO, как это:

public interface ImagePathAndID {
    String getImagePath();
    Integer getIdProduct();
}

Мой запрос:

@Query(value = "select image.image_path, product.product_id from    image\r\n" + 
            "           inner join product  on product.product_id = image.product_id\r\n" + 
            "           inner join category as c on product.category_id = c.category_id \r\n" + 
            "           where c.category_id = :id ", nativeQuery = true)
    public List<ImagePathAndID > selectAllImagePathForCategory(@Param("id") int id);

И когда я возвращаю данные, я получаю нулевое значение для getImagePath и getIdProduct.

List<ImagePathAndID> imagePath = this.categoryRepository.selectAllImagePathForCategory(id);


        for (ImagePathAndID image:imagePath ) {
            System.out.println(image.getImagePath() + image.getIdProduct());
        }

Я получил 3 объекта для ImagePathAndID, но значение для этого объекта null.Вывод:

null,null
null,null
null,null

1 Ответ

2 голосов
/ 29 июня 2019

Ключевым моментом здесь является то, что определенные свойства должны точно соответствовать соглашению об именах методов интерфейса.См. документацию

Вы должны изменить свой запрос и методы интерфейса, как показано ниже.

Запрос

@Query(value ="select image.image_path as imagePath, product.product_id as productId from    image\r\n" + 
        "           inner join product  on product.product_id = image.product_id\r\n" + 
        "           inner join category as c on product.category_id = c.category_id \r\n" + 
        "           where c.category_id = :id ", nativeQuery = true)
public List<ImagePathAndID > selectAllImagePathForCategory(@Param("id") int id);

Интерфейс

public interface ImagePathAndID {
   String getImagePath();
   Integer getProductId();

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...