Why does EntityManager.createNativeQuery(String sql, Class resultClass) return a Query instead of a TypedQuery?

Viewed 10

Java JPA EntityManager has methods for creating a Query and a TypedQuery for jpql and named queries:

public Query createQuery(String qlString);
public <T> TypedQuery<T> createQuery(String qlString, Class<T> resultClass);

public Query createNamedQuery(String name);
public <T> TypedQuery<T> createNamedQuery(String name, Class<T> resultClass);

So, for a native query, why does it accept a raw Class parameter, and return a Query, rather than a TypedQuery?

public Query createNativeQuery(String sqlString);
public Query createNativeQuery(String sqlString, Class resultClass);

That is, why isn't the second form of createNativeQuery method:

public <T> TypedQuery<T> createNativeQuery(String sqlString, Class<T> resultClass);

following the pattern of the other two.

0 Answers
Related