public OpenJPAQuery createQuery(String language, String query) {
assertNotCloseInvoked();
try {
String qid = query;
PreparedQuery pq = JPQLParser.LANG_JPQL.equals(language)
? getPreparedQuery(qid) : null;
org.apache.openjpa.kernel.Query q = (pq == null || !pq.isInitialized())
? _broker.newQuery(language, query)
: _broker.newQuery(pq.getLanguage(), pq);
// have to validate JPQL according to spec
if (pq == null && JPQLParser.LANG_JPQL.equals(language))
q.compile();
if (pq != null) {
pq.setInto(q);
}
return newQueryImpl(q).setId(qid);
} catch (RuntimeException re) {
throw PersistenceExceptions.toPersistenceException(re);
}