List of usage examples for org.hibernate.boot.registry.selector.spi StrategySelector resolveDefaultableStrategy
<T> T resolveDefaultableStrategy(Class<T> strategy, Object strategyReference, Callable<T> defaultResolver);
From source file:com.blazebit.persistence.integration.hibernate.Hibernate43Integrator.java
License:Apache License
@Override public void prepareServices(final StandardServiceRegistryBuilder serviceRegistryBuilder) { final StrategySelector strategySelector = serviceRegistryBuilder.getBootstrapServiceRegistry() .getService(StrategySelector.class); serviceRegistryBuilder.addService(StrategySelector.class, new StrategySelector() { @Override//from w ww.j ava2 s .co m public <T> void registerStrategyImplementor(Class<T> aClass, String s, Class<? extends T> aClass1) { strategySelector.registerStrategyImplementor(aClass, s, aClass1); } @Override public <T> void unRegisterStrategyImplementor(Class<T> aClass, Class<? extends T> aClass1) { strategySelector.unRegisterStrategyImplementor(aClass, aClass1); } @Override public <T> Class<? extends T> selectStrategyImplementor(Class<T> aClass, String s) { return strategySelector.selectStrategyImplementor(aClass, s); } @Override public <T> T resolveStrategy(Class<T> aClass, Object o) { if (MultiTableBulkIdStrategy.class == aClass) { if (o == null) { ServiceRegistry serviceRegistry = SERVICE_REGISTRY_ACCESS.get(); SERVICE_REGISTRY_ACCESS.remove(); return (T) new CustomMultiTableBulkIdStrategy(serviceRegistry.getService(JdbcServices.class) .getDialect().supportsTemporaryTables() ? TemporaryTableBulkIdStrategy.INSTANCE : new PersistentTableBulkIdStrategy()); } else { LOG.warning( "Can't replace hibernate.hql.bulk_id_strategy because it was overridden by the user with: " + o); } } return strategySelector.resolveStrategy(aClass, o); } @Override public <T> T resolveDefaultableStrategy(Class<T> aClass, Object o, T t) { return strategySelector.resolveDefaultableStrategy(aClass, o, t); } }); serviceRegistryBuilder.addInitiator(new StandardServiceInitiator<Database>() { @Override public Database initiateService(@SuppressWarnings("rawtypes") Map configurationValues, ServiceRegistryImplementor registry) { return null; } @Override public Class<Database> getServiceInitiated() { return Database.class; } }); }
From source file:org.redisson.hibernate.RedissonRegionFactory.java
License:Apache License
@Override protected void prepareForUse(SessionFactoryOptions settings, @SuppressWarnings("rawtypes") Map properties) throws CacheException { this.redisson = createRedissonClient(properties); StrategySelector selector = settings.getServiceRegistry().getService(StrategySelector.class); cacheKeysFactory = selector.resolveDefaultableStrategy(CacheKeysFactory.class, properties.get(Environment.CACHE_KEYS_FACTORY), DefaultCacheKeysFactory.INSTANCE); }