Is it possible to avoid cast warnings after using createQuery().list?
//Type safety: The expression of type List needs unchecked conversion to conform to Lis
Since JPA 2.0 , EntityManager has added following overloaded createQuery()/createNamedQuery() methods that return TypedQuery to solve the propblem:
TypedQuery entityManager.createQuery(CriteriaQuery criteriaQuery)
TypedQuery entityManager.createQuery(java.lang.String qlString, java.lang.Class resultClass)
TypedQuery entityManager.createNamedQuery(java.lang.String name, java.lang.Class resultClass)
Example:
@Repository
public class UsersRepositoryImpl implements IUsersRepository {
@PersistenceContext(unitName="SPRING_BOOT_JPA_DS_PU")
private EntityManager entityManager;
@Override
public List listUser() {
String queryString = "SELECT U FROM " + User.class.getName() + " U";
// Query query =entityManager.createQuery(queryString);
// Use TypedQuery instead of Query
// Requires JPA 2.0
TypedQuery query = entityManager.createQuery(queryString, User.class);
List resultList = query.getResultList();
return resultList;
}
}