I am using play framework with jpa. I have a model Jobads with 2 functions to findall() findByLocation()
My Model
public class Job
createQuery()
method accepts two parameters, query and the type of the query result, thus you can write type safe query this way:
createQuery("FROM Jobads j join j.city c WHERE c.name LIKE :location", Jobads.class);
Think about what is returned by your second query : you will have a table with two rows due to the join
statement. However, I don't really know what will be the type of the output in this case, try using getClass
on it to see.
It's happening because that's how HQL queries without a select clause work. Note that these are not valid JPQL queries. JPQL makes the select clause mandatory, and using a select clause would allow you to specify what you want the query to return:
select j from Jobads j join j.city c WHERE c.name LIKE :location