List of usage examples for org.hibernate.engine.spi FilterDefinition FilterDefinition
public FilterDefinition(String name, String defaultCondition, Map<String, Type> parameterTypes)
From source file:grails.plugin.multitenant.spring.FilterDefinitionFactoryBean.java
License:Apache License
@Override public void afterPropertiesSet() { this.filterDefinition = new FilterDefinition(this.filterName, this.defaultFilterCondition, this.parameterTypeMap); }
From source file:org.grails.orm.hibernate.cfg.GrailsAnnotationConfiguration.java
License:Apache License
@Override public SessionFactory buildSessionFactory() throws HibernateException { // set the class loader to load Groovy classes // work around for HHH-2624 Map<String, Type> empty = new HashMap<String, Type>(); addFilterDefinition(new FilterDefinition("dynamicFilterEnabler", "1=1", empty)); SessionFactory sessionFactory = null; ClassLoader appClassLoader = (ClassLoader) getProperties().get(AvailableSettings.APP_CLASSLOADER); Thread currentThread = Thread.currentThread(); ClassLoader threadContextClassLoader = currentThread.getContextClassLoader(); boolean overrideClassLoader = (appClassLoader != null && !appClassLoader.equals(threadContextClassLoader)); if (overrideClassLoader) { currentThread.setContextClassLoader(appClassLoader); }//from ww w . j a v a 2 s .co m try { ConfigurationHelper.resolvePlaceHolders(getProperties()); EventListenerIntegrator eventListenerIntegrator = new EventListenerIntegrator(hibernateEventListeners, eventListeners); BootstrapServiceRegistry bootstrapServiceRegistry = new BootstrapServiceRegistryBuilder() .with(eventListenerIntegrator).build(); setSessionFactoryObserver(new SessionFactoryObserver() { private static final long serialVersionUID = 1; public void sessionFactoryCreated(SessionFactory factory) { } public void sessionFactoryClosed(SessionFactory factory) { ((ServiceRegistryImplementor) serviceRegistry).destroy(); } }); StandardServiceRegistryBuilder standardServiceRegistryBuilder = new StandardServiceRegistryBuilder( bootstrapServiceRegistry).applySettings(getProperties()); sessionFactory = super.buildSessionFactory(standardServiceRegistryBuilder.build()); serviceRegistry = ((SessionFactoryImplementor) sessionFactory).getServiceRegistry(); } finally { if (overrideClassLoader) { currentThread.setContextClassLoader(threadContextClassLoader); } } return sessionFactory; }
From source file:org.grails.orm.hibernate.cfg.GrailsDomainBinder.java
License:Apache License
/** * Binds a root class (one with no super classes) to the runtime meta model * based on the supplied Grails domain class * * @param entity The Grails domain class * @param mappings The Hibernate Mappings object * @param sessionFactoryBeanName the session factory bean name *//* ww w . ja v a 2 s .c o m*/ public void bindRoot(HibernatePersistentEntity entity, InFlightMetadataCollector mappings, String sessionFactoryBeanName) { if (mappings.getEntityBinding(entity.getName()) != null) { LOG.info("[GrailsDomainBinder] Class [" + entity.getName() + "] is already mapped, skipping.. "); return; } RootClass root = new RootClass(this.metadataBuildingContext); root.setAbstract(entity.isAbstract()); final MappingContext mappingContext = entity.getMappingContext(); final java.util.Collection<PersistentEntity> children = mappingContext.getDirectChildEntities(entity); if (children.isEmpty()) { root.setPolymorphic(false); } bindClass(entity, root, mappings); Mapping m = getMapping(entity); bindRootPersistentClassCommonValues(entity, root, mappings, sessionFactoryBeanName); if (!children.isEmpty()) { boolean tablePerSubclass = m != null && !m.getTablePerHierarchy(); if (!tablePerSubclass) { // if the root class has children create a discriminator property bindDiscriminatorProperty(root.getTable(), root, mappings); } // bind the sub classes bindSubClasses(entity, root, mappings, sessionFactoryBeanName); } if (entity.isMultiTenant()) { TenantId tenantId = entity.getTenantId(); if (tenantId != null) { String filterCondition = getMultiTenantFilterCondition(sessionFactoryBeanName, entity); root.addFilter(GormProperties.TENANT_IDENTITY, filterCondition, true, Collections.<String, String>emptyMap(), Collections.<String, String>emptyMap()); mappings.addFilterDefinition(new FilterDefinition(GormProperties.TENANT_IDENTITY, filterCondition, Collections.singletonMap(GormProperties.TENANT_IDENTITY, root.getProperty(tenantId.getName()).getType()))); } } mappings.addEntityBinding(root); }
From source file:org.jspresso.framework.application.backend.persistence.hibernate.JspressoLocalSessionFactoryBean.java
License:Open Source License
/** * Registers the default Jspresso Filter. * <p>// w ww . j a va 2 s.c o m * {@inheritDoc} */ @Override protected SessionFactory buildSessionFactory(LocalSessionFactoryBuilder sfb) { Map<String, Type> filterParameters = new HashMap<>(); filterParameters.put(HibernateBackendController.JSPRESSO_SESSION_GLOBALS_LOGIN, sfb.getTypeResolver().heuristicType("string")); filterParameters.put(HibernateBackendController.JSPRESSO_SESSION_GLOBALS_LANGUAGE, sfb.getTypeResolver().heuristicType("string")); sfb.addFilterDefinition( new FilterDefinition(HibernateBackendController.JSPRESSO_SESSION_GLOBALS, null, filterParameters)); return super.buildSessionFactory(sfb); }
From source file:org.openeos.hibernate.internal.configurators.FilterConfigurator.java
License:Apache License
private void addFilterDefinitions(FilterProvider provider, ConfigurationProvider configurationProvider) { Configuration conf = configurationProvider.getConfiguration(); conf.buildMappings();/*from w w w . j a v a2 s .c o m*/ Map<?, ?> filterDefinitions = conf.getFilterDefinitions(); TypeResolver resolver = conf.getTypeResolver(); for (BasicFilterDefinition filterDef : provider.getFilterDefinitions()) { Map<String, Type> paramMapConverted = new HashMap<String, Type>(); for (Entry<String, String> paramEntry : filterDef.getParameterTypeMap().entrySet()) { Type type = resolver.heuristicType(paramEntry.getValue()); paramMapConverted.put(paramEntry.getKey(), type); } FilterDefinition definition = new FilterDefinition(filterDef.getName(), filterDef.getDefaultCondition(), paramMapConverted); LOG.debug("Registering new filter definition with name '{}'", definition.getFilterName()); if (filterDefinitions.containsKey(definition.getFilterName())) { LOG.warn("The configuration already has filter definition with name '{}', overwriting.", definition.getFilterName()); } conf.addFilterDefinition(definition); filterProviderMap.put(definition.getFilterName(), provider); Iterator<PersistentClass> classIterator = conf.getClassMappings(); while (classIterator.hasNext()) { PersistentClass persistentClass = classIterator.next(); provider.addFilterToClassIfNecesary(persistentClass, filterDef); } } configurationProvider.invalidate(); }