Example usage for org.hibernate.cfg AvailableSettings QUERY_TRANSLATOR

List of usage examples for org.hibernate.cfg AvailableSettings QUERY_TRANSLATOR

Introduction

In this page you can find the example usage for org.hibernate.cfg AvailableSettings QUERY_TRANSLATOR.

Prototype

String QUERY_TRANSLATOR

To view the source code for org.hibernate.cfg AvailableSettings QUERY_TRANSLATOR.

Click Source Link

Document

The classname of the HQL query parser factory

Usage

From source file:org.babyfish.hibernate.cfg.SettingsFactory.java

License:Open Source License

@Override
protected final QueryTranslatorFactory createQueryTranslatorFactory(Properties properties,
        ServiceRegistry serviceRegistry) {
    if (properties.containsKey(Environment.QUERY_TRANSLATOR)) {
        throw new HibernateException("the property \"" + Environment.QUERY_TRANSLATOR + "\" is deprecated by \""
                + OBJECT_QUERY_TRANSLATOR_FACTORY + "\"");
    }//from  w w  w.ja  v a2s.  c  o m
    String className = ConfigurationHelper.getString(AvailableSettings.QUERY_TRANSLATOR, properties,
            XQueryTranslatorFactoryImpl.class.getName());
    LOGGER.info("Entity query translator: " + className);
    final XQueryTranslatorFactory translatorFactory;
    Class<?> xQueryTranslatorFactoryImplClass;
    try {
        xQueryTranslatorFactoryImplClass = ReflectHelper.classForName(className);
    } catch (ClassNotFoundException ex) {
        throw new HibernateException(LAZY_RESOURCE.get()
                .notExistingXQueryTransalatorFactoryImpl(XQueryTranslatorFactory.class, className));
    }
    try {
        translatorFactory = (XQueryTranslatorFactory) xQueryTranslatorFactoryImplClass.newInstance();
    } catch (InstantiationException | IllegalAccessException ex) {
        throw new HibernateException(LAZY_RESOURCE.get().failedToInstantiateXQueryTranslatorFactory(
                XQueryTranslatorFactory.class, xQueryTranslatorFactoryImplClass), ex);
    }

    return new QueryTranslatorFactory() {

        @SuppressWarnings({ "unchecked", "rawtypes" })
        @Override
        public QueryTranslator createQueryTranslator(String queryIdentifier, String queryString, Map filters,
                SessionFactoryImplementor factory, EntityGraphQueryHint entityGraphQueryHint) {
            return translatorFactory.createQueryTranslator(queryIdentifier, queryString,
                    XQueryPlan.currentPathPlanKey(), filters, factory, entityGraphQueryHint);
        }

        @SuppressWarnings({ "unchecked", "rawtypes" })
        @Override
        public FilterTranslator createFilterTranslator(String queryIdentifier, String queryString, Map filters,
                SessionFactoryImplementor factory) {
            return translatorFactory.createFilterTranslator(queryIdentifier, queryString,
                    XQueryPlan.currentPathPlanKey(), filters, factory);
        }
    };
}