The way you are doing is not possible because you are assigning the result set to List but the query has some joins, it mean that the result of query is not a Product entity.
You can try to do a Native query. For example:
@PersistenceContext
private EntityManager entityManager;
public List