Я пытаюсь получить не-объектный объект, используя собственный запрос, который я хотел бы использовать в качестве модели для представления на одной из страниц моего приложения.Я следую этому объяснению, которое не идет в подробностях, оно больше похоже на шпаргалку для того, кто уже знаком с этой темой и нуждается только в напоминании.Есть похожие вопросы здесь и здесь давным-давно, и, поскольку я не могу понять, куда именно должны идти предоставленные блоки кода, я подумал, что могу задать новый вопрос.Что бы я ни пытался, я получаю это исключение:
org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap] to type
Вот мой класс модели:
public class ProductForHomeView {
private int id;
private String title;
private EProductType productType;
private double price;
private int quantity;
public ProductForHomeView(int id, String title, EProductType productType, double price, int quantity) {
this.id = id;
this.title = title;
this.productType = productType;
this.price = price;
this.quantity = quantity;
}
Интерфейс репозитория:
public interface IProductsRepository extends CrudRepository<Products, Integer> {
@Query(value = "SELECT products.id, products.title, products.the_type AS productType, stock.price, stock.quantity FROM products LEFT JOIN stock on products.id=stock.product_id", nativeQuery = true)
List<ProductForHomeView> getProductsInfoForTheHomePage();
}
И один изклассы сущностей, в которых я пытаюсь отобразить класс не-сущности:
@Entity
@Table(name = "stock")
@SqlResultSetMapping(
name="ProductForHomeViewMapping",
classes={
@ConstructorResult(
targetClass=qualified.name.ProductForHomeView.class,
columns={
@ColumnResult(name="id", type=Integer.class),
@ColumnResult(name="title", type=String.class),
@ColumnResult(name="productType", type=EProductType.class),
@ColumnResult(name="price", type=Long.class),
@ColumnResult(name="quantity", type=String.class)
})})
public class Stock {
// mapped fields, constructors, geters and setters...
}
Я ценю любой ввод!