Example usage for org.hibernate.hql.spi QueryTranslatorFactory QueryTranslatorFactory

List of usage examples for org.hibernate.hql.spi QueryTranslatorFactory QueryTranslatorFactory

Introduction

In this page you can find the example usage for org.hibernate.hql.spi QueryTranslatorFactory QueryTranslatorFactory.

Prototype

QueryTranslatorFactory

Source Link

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 + "\"");
    }/*w w w  .  ja  v  a2  s. co 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);
        }
    };
}