类org.hibernate.hql.QueryTranslatorFactory源码实例Demo

下面列出了怎么用org.hibernate.hql.QueryTranslatorFactory的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: cacheonix-core   文件: QueryTranslatorTestCase.java
protected void runClassicTranslator(String hql) throws Exception {
	SessionFactoryImplementor factory = getSessionFactoryImplementor();
	Map replacements = new HashMap();
	QueryTranslator oldQueryTranslator = null;
	try {
		QueryTranslatorFactory classic = new ClassicQueryTranslatorFactory();
		oldQueryTranslator = classic.createQueryTranslator( hql, hql, Collections.EMPTY_MAP, factory );
		oldQueryTranslator.compile( replacements, false );
	}
	catch ( Exception e ) {
		e.printStackTrace();
		throw e;
	}
	String oldsql = oldQueryTranslator.getSQLString();
	System.out.println( "HQL    : " + hql );
	System.out.println( "OLD SQL: " + oldsql );
}
 
源代码2 项目: ctsms   文件: QueryUtil.java
private static String hqlToSql(String hqlQueryText, SessionFactory sessionFactory) {
	if (hqlQueryText != null && hqlQueryText.trim().length() > 0
			&& sessionFactory != null) {
		final QueryTranslatorFactory translatorFactory = new ASTQueryTranslatorFactory();
		final SessionFactoryImplementor factory = (SessionFactoryImplementor) sessionFactory;
		final QueryTranslator translator = translatorFactory
				.createQueryTranslator(hqlQueryText, hqlQueryText,
						Collections.EMPTY_MAP, factory);
		translator.compile(Collections.EMPTY_MAP, false);
		return translator.getSQLString();
	}
	return null;
}
 
/**
 * HQL to SQL translator
 */
public static String toSql(String hql) {
	if (hql != null && hql.trim().length() > 0) {
		final QueryTranslatorFactory qtf = new ASTQueryTranslatorFactory();
		final SessionFactoryImplementor sfi = (SessionFactoryImplementor) sessionFactory;
		final QueryTranslator translator = qtf.createQueryTranslator(hql, hql, Collections.EMPTY_MAP, sfi);
		translator.compile(Collections.EMPTY_MAP, false);
		return translator.getSQLString();
	}

	return null;
}
 
源代码4 项目: cacheonix-core   文件: SettingsFactory.java
protected QueryTranslatorFactory createQueryTranslatorFactory(Properties properties) {
	String className = PropertiesHelper.getString(
			Environment.QUERY_TRANSLATOR, properties, "org.hibernate.hql.ast.ASTQueryTranslatorFactory"
	);
	log.info("Query translator: " + className);
	try {
		return (QueryTranslatorFactory) ReflectHelper.classForName(className).newInstance();
	}
	catch (Exception cnfe) {
		throw new HibernateException("could not instantiate QueryTranslatorFactory: " + className, cnfe);
	}
}
 
源代码5 项目: cacheonix-core   文件: EJBQLTest.java
private void assertEjbqlEqualsHql(String ejbql, String hql) {
	QueryTranslatorFactory ast = new ASTQueryTranslatorFactory();

	QueryTranslator queryTranslator = ast.createQueryTranslator( hql, hql, Collections.EMPTY_MAP, sfi() );
	queryTranslator.compile( Collections.EMPTY_MAP, true );
	String hqlSql = queryTranslator.getSQLString();

	queryTranslator = ast.createQueryTranslator( ejbql, ejbql, Collections.EMPTY_MAP, sfi() );
	queryTranslator.compile( Collections.EMPTY_MAP, true );
	String ejbqlSql = queryTranslator.getSQLString();

	assertEquals( hqlSql, ejbqlSql );
}
 
源代码6 项目: cacheonix-core   文件: EJBQLTest.java
private QueryTranslatorImpl compile(String input) {
	QueryTranslatorFactory ast = new ASTQueryTranslatorFactory();
	QueryTranslator queryTranslator = ast.createQueryTranslator( input, input, Collections.EMPTY_MAP, sfi() );
	queryTranslator.compile( Collections.EMPTY_MAP, true );

	return ( QueryTranslatorImpl ) queryTranslator;
}
 
源代码7 项目: cacheonix-core   文件: HQLTest.java
private void compileWithAstQueryTranslator(String hql, boolean scalar) {
	Map replacements = new HashMap();
	QueryTranslatorFactory ast = new ASTQueryTranslatorFactory();
	SessionFactoryImplementor factory = getSessionFactoryImplementor();
	QueryTranslator newQueryTranslator = ast.createQueryTranslator( hql, hql, Collections.EMPTY_MAP, factory );
	newQueryTranslator.compile( replacements, scalar );
}
 
源代码8 项目: cacheonix-core   文件: Settings.java
public QueryTranslatorFactory getQueryTranslatorFactory() {
	return queryTranslatorFactory;
}
 
源代码9 项目: cacheonix-core   文件: Settings.java
void setQueryTranslatorFactory(QueryTranslatorFactory queryTranslatorFactory) {
	this.queryTranslatorFactory = queryTranslatorFactory;
}
 
源代码10 项目: cacheonix-core   文件: QueryTranslatorTestCase.java
private QueryTranslatorImpl createNewQueryTranslator(String hql, Map replacements, boolean scalar, SessionFactoryImplementor factory) {
	QueryTranslatorFactory ast = new ASTQueryTranslatorFactory();
	QueryTranslatorImpl newQueryTranslator = ( QueryTranslatorImpl ) ast.createQueryTranslator( hql, hql, Collections.EMPTY_MAP, factory );
	newQueryTranslator.compile( replacements, scalar );
	return newQueryTranslator;
}
 
源代码11 项目: cacheonix-core   文件: EJBQLTest.java
private String toSql(String hql) {
	QueryTranslatorFactory ast = new ASTQueryTranslatorFactory();
	QueryTranslator queryTranslator = ast.createQueryTranslator( hql, hql, Collections.EMPTY_MAP, sfi() );
	queryTranslator.compile( Collections.EMPTY_MAP, true );
	return queryTranslator.getSQLString();
}
 
源代码12 项目: cacheonix-core   文件: CriteriaHQLAlignmentTest.java
public void testHQLAggregationReturnType() {
	// EJB3: COUNT returns Long
	QueryTranslatorImpl translator = createNewQueryTranslator( "select count(*) from Human h" );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.LONG, translator.getReturnTypes()[0] );
	
	translator = createNewQueryTranslator( "select count(h.height) from Human h" );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.LONG, translator.getReturnTypes()[0] );
			
	// MAX, MIN return the type of the state-field to which they are applied. 
	translator = createNewQueryTranslator( "select max(h.height) from Human h" );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.DOUBLE, translator.getReturnTypes()[0] );
	
	translator = createNewQueryTranslator( "select max(h.id) from Human h" );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.LONG, translator.getReturnTypes()[0] );
	
	// AVG returns Double.
	translator = createNewQueryTranslator( "select avg(h.height) from Human h" );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.DOUBLE, translator.getReturnTypes()[0] );
	
	translator = createNewQueryTranslator( "select avg(h.id) from Human h" );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.DOUBLE, translator.getReturnTypes()[0] );
	
	translator = createNewQueryTranslator( "select avg(h.bigIntegerValue) from Human h" );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.DOUBLE, translator.getReturnTypes()[0] );
	
       // SUM returns Long when applied to state-fields of integral types (other than BigInteger);
	    translator = createNewQueryTranslator( "select sum(h.id) from Human h" );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.LONG, translator.getReturnTypes()[0] );
	
	translator = createNewQueryTranslator( "select sum(h.intValue) from Human h" );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.LONG, translator.getReturnTypes()[0] );
	
	// SUM returns Double when applied to state-fields of floating point types; 
	translator = createNewQueryTranslator( "select sum(h.height) from Human h" );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.DOUBLE, translator.getReturnTypes()[0] );

	translator = createNewQueryTranslator( "select sum(h.floatValue) from Human h" );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.DOUBLE, translator.getReturnTypes()[0] );
	
    // SUM returns BigInteger when applied to state-fields of type BigInteger 
	translator = createNewQueryTranslator( "select sum(h.bigIntegerValue) from Human h" );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.BIG_INTEGER, translator.getReturnTypes()[0] );
	
	// SUM and BigDecimal when applied to state-fields of type BigDecimal.
	translator = createNewQueryTranslator( "select sum(h.bigDecimalValue) from Human h" );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.BIG_DECIMAL, translator.getReturnTypes()[0] );

	// special case to test classicquery special case handling of count(*)
	QueryTranslator oldQueryTranslator = null;
	String hql = "select count(*) from Human h";
	QueryTranslatorFactory classic = new ClassicQueryTranslatorFactory();
	oldQueryTranslator = classic.createQueryTranslator( hql, hql, Collections.EMPTY_MAP, getSessionFactoryImplementor() );
	oldQueryTranslator.compile( Collections.EMPTY_MAP, true);
	assertEquals( "incorrect return type count", 1, oldQueryTranslator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.LONG, oldQueryTranslator.getReturnTypes()[0] );

}
 
public void testClassicHQLAggregationReturnTypes() {
	// EJB3: COUNT returns Long
	QueryTranslatorImpl translator = createNewQueryTranslator( "select count(*) from Human h", sfi() );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.INTEGER, translator.getReturnTypes()[0] );

	translator = createNewQueryTranslator( "select count(h.height) from Human h", sfi() );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.INTEGER, translator.getReturnTypes()[0] );

	// MAX, MIN return the type of the state-field to which they are applied.
	translator = createNewQueryTranslator( "select max(h.height) from Human h", sfi() );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.DOUBLE, translator.getReturnTypes()[0] );

	translator = createNewQueryTranslator( "select max(h.id) from Human h", sfi() );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.LONG, translator.getReturnTypes()[0] );

	// AVG returns Float integrals, and otherwise the field type.
	translator = createNewQueryTranslator( "select avg(h.height) from Human h", sfi() );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.DOUBLE, translator.getReturnTypes()[0] );

	translator = createNewQueryTranslator( "select avg(h.id) from Human h", sfi() );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.FLOAT, translator.getReturnTypes()[0] );

	translator = createNewQueryTranslator( "select avg(h.bigIntegerValue) from Human h", sfi() );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.BIG_INTEGER, translator.getReturnTypes()[0] );

       // SUM returns underlying type sum
	    translator = createNewQueryTranslator( "select sum(h.id) from Human h", sfi() );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.LONG, translator.getReturnTypes()[0] );

	translator = createNewQueryTranslator( "select sum(h.intValue) from Human h", sfi() );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.INTEGER, translator.getReturnTypes()[0] );

	translator = createNewQueryTranslator( "select sum(h.height) from Human h", sfi() );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.DOUBLE, translator.getReturnTypes()[0] );

	translator = createNewQueryTranslator( "select sum(h.floatValue) from Human h", sfi() );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.FLOAT, translator.getReturnTypes()[0] );

	translator = createNewQueryTranslator( "select sum(h.bigIntegerValue) from Human h", sfi() );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.BIG_INTEGER, translator.getReturnTypes()[0] );

	translator = createNewQueryTranslator( "select sum(h.bigDecimalValue) from Human h", sfi() );
	assertEquals( "incorrect return type count", 1, translator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.BIG_DECIMAL, translator.getReturnTypes()[0] );

	// special case to test classicquery special case handling of count(*)
	QueryTranslator oldQueryTranslator = null;
	String hql = "select count(*) from Human h";
	QueryTranslatorFactory classic = new ClassicQueryTranslatorFactory();
	oldQueryTranslator = classic.createQueryTranslator( hql, hql, Collections.EMPTY_MAP, sfi() );
	oldQueryTranslator.compile( Collections.EMPTY_MAP, true);
	assertEquals( "incorrect return type count", 1, oldQueryTranslator.getReturnTypes().length );
	assertEquals( "incorrect return type", Hibernate.INTEGER, oldQueryTranslator.getReturnTypes()[0] );

}
 
 类所在包
 同包方法