This my repostoriy for retrieve items
@Query(value = "SELECT DISTINCT M.ID as \"id\", "
+ " M.NAME_PRIMARY_LANG as \"name\" "
+ " FROM ECOMMERCE_CORE.MERCHANT_ITEMS M , "
+ " ECOMMERCE_CORE.PRODUCT_UNIT_OF_MEASURE P , "
+ " ECOMMERCE_CORE.LOOKUP_TYPES_STATUS S , "
+ " ECOMMERCE_CORE.ITEM_TYPES T , "
+ " ECOMMERCE_CORE.ITEM_PRICE I,"
+ " ECOMMERCE_CORE.MERCHANT_ITEM_BRAND B, "
+ " ECOMMERCE_CORE.MERCHANT_ITEM_CATEGORY C "
+ " WHERE M.ID = P.PRODUCT_ID AND M.ID=I.PRODUCT_ID AND M.ID = B.MERCHANT_ITEM_ID AND S.ID=M.STATUS_ID AND M.TYPE = T.ID AND M.MERCHANT_ID =?1 AND M.STATUS_ID =?2 "
+ " AND P.BRANCH_ID = ?3 AND I.CHANNEL_ID = ?4 ",
nativeQuery = true
)
List<ItemModelProjection> findBySupplierIdAndStatusCode(long id, long status, long branchId, long channelId, Pageable pageable);
and this my interface which i need to map the result to it
@Getter
@EqualsAndHashCode(of = {"id"})
public class ItemModelProjection {
private String id;
private String name;
public ItemModelProjection(final String id, final String name) {
this.id = id;
this.name = name;
}}
and the result of this query not mapped to the interface , what is the problem for it ?
You need an interface if you want to retrieve those values. And be careful with the naming of the methods. If you have like in your case
AS name
then call the methodgetName()
. But if you don't have AS specified and you are returning a value for example likePRODUCT_UNIT_OF_MEASURE
then use the following method name:getProduct_Unit_Of_Measure()
.For getting those two values use the following interface: