/** * 根据查询SQL与参数列表创建SQLQuery对象 * * @param queryOrNamedSQLQuery query 或者 NamedSQLQuery * @param values 数量可变的参数,按顺序绑定. * * @return {@link SQLQuery} */ protected SQLQuery createSQLQuery( String queryOrNamedSQLQuery, Object... values) { Assert.hasText(queryOrNamedSQLQuery, "queryOrNamedSQLQuery不能为空"); SessionFactoryImpl factory = (SessionFactoryImpl) sessionFactory; NamedSQLQueryDefinition nsqlqd = factory.getNamedSQLQuery( queryOrNamedSQLQuery ); Query query = null; if (nsqlqd != null) { query = getSession().getNamedQuery(queryOrNamedSQLQuery); } else { query = getSession().createSQLQuery(queryOrNamedSQLQuery); } setQueryValues(query, values); SQLQuery sqlQuery = (SQLQuery)query; return sqlQuery.addEntity(entityClass); }
@Override public Query getNamedSQLQuery(String queryName) throws MappingException { errorIfClosed(); NamedSQLQueryDefinition nsqlqd = factory.getNamedSQLQuery( queryName ); if ( nsqlqd==null ) { throw new MappingException( "Named SQL query not known: " + queryName ); } Query query = new SQLQueryImpl( nsqlqd, this, factory.getQueryPlanCache().getSQLParameterMetadata( nsqlqd.getQueryString() ) ); query.setComment( "named native SQL query " + queryName ); initQuery( query, nsqlqd ); return query; }
@Override public Query getNamedSQLQuery(String queryName) throws MappingException { errorIfClosed(); NamedSQLQueryDefinition nsqlqd = factory.getNamedSQLQuery( queryName ); if ( nsqlqd==null ) { throw new MappingException( "Named SQL query not known: " + queryName ); } Query query = new SQLQueryImpl( nsqlqd, this, factory.getQueryPlanCache().getSQLParameterMetadata( nsqlqd.getQueryString() ) ); query.setComment( "named native SQL query " + queryName ); initQuery( query, nsqlqd ); return query; }
NamedSQLQueryDefinition nsqlqd = factory.getNamedSQLQuery( queryName ); if ( nsqlqd==null ) { throw new MappingException( "Named query not known: " + queryName );
NamedSQLQueryDefinition nsqlqd = factory.getNamedSQLQuery( queryName ); if ( nsqlqd==null ) { throw new MappingException( "Named query not known: " + queryName );