@Bean public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() { Map<String, Object> properties = new Hashtable<>(); properties.put("javax.persistence.schema-generation.database.action", "none"); properties.put("hibernate.connection.characterEncoding", "utf8"); properties.put("hibernate.connection.useUnicode", "true"); properties.put("hibernate.connection.charSet", "utf8"); properties.put("hibernate.search.default.directory_provider", "filesystem"); properties.put("hibernate.search.default.indexBase", context.getInitParameter("indexDir")); HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter(); adapter.setDatabasePlatform("org.hibernate.dialect.MySQL5InnoDBDialect"); LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean(); factory.setJpaVendorAdapter(adapter); factory.setDataSource(this.bookManagerDataSource()); factory.setPackagesToScan("net.viperfish.bookManager"); factory.setSharedCacheMode(SharedCacheMode.ENABLE_SELECTIVE); factory.setValidationMode(ValidationMode.NONE); factory.setJpaPropertyMap(properties); return factory; }
@Bean @DependsOn(value = {"simpleApplicationContextHolder"}) public LocalContainerEntityManagerFactoryBean entityManagerFactory() { final LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean(); factoryBean.setDataSource(dataSource); factoryBean.setSharedCacheMode(SharedCacheMode.ENABLE_SELECTIVE); factoryBean.setValidationMode(ValidationMode.CALLBACK); factoryBean.setJpaVendorAdapter(jpaVendorAdapter); factoryBean.setPackagesToScan("com.devicehive.model"); final Properties props = new Properties(); props.putAll(this.properties.getHibernateProperties(this.dataSource)); if (useNativeClient) { props.put("hibernate.cache.hazelcast.native_client_group", groupName); props.put("hibernate.cache.hazelcast.native_client_password", groupPassword); if (!CollectionUtils.isEmpty(clusterMembers)) { props.put("hibernate.cache.hazelcast.native_client_address", clusterMembers.get(0)); } } factoryBean.setJpaProperties(props); return factoryBean; }
@Override public void endElement(String uri, String localName, String name) throws SAXException { String s = builder.toString().trim(); // This step is VERY important, otherwise we pollute subsequent // elements builder = new StringBuilder(); if ("".equals(s)) return; PersistenceUnit pu = persistenceUnits.peek(); if ("provider".equals(elementName)) pu.setProviderClassName(s); else if ("jta-data-source".equals(elementName)) pu.setJtaDataSourceName(s); else if ("non-jta-data-source".equals(elementName)) pu.setNonJtaDataSourceName(s); else if ("class".equals(elementName)) pu.addClassName(s); else if("mapping-file".equals(elementName)) pu.addMappingFile(s); else if ("exclude-unlisted-classes".equals(elementName)) pu.setExcludeUnlisted(Boolean.parseBoolean(s)); else if ("shared-cache-mode".equals(elementName)) pu.setSharedCacheMode(SharedCacheMode.valueOf(s)); else if ("validation-mode".equals(elementName)) pu.setValidationMode(ValidationMode.valueOf(s)); }
@Bean public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() { Map<String, Object> properties = new HashMap<>(); // properties.put("javax.persistence.schema-generation.database.action", "none"); // 没有update选项,只有:none、create、drop-and-create、drop,不满足开发需求 // properties.put("hibernate.hbm2ddl.auto", "update"); // 使用adapter.setGenerateDdl(true),避免拼写错误; properties.put("hibernate.ejb.use_class_enhancer", "true"); properties.put("hibernate.search.default.directory_provider", "filesystem"); properties.put("hibernate.search.lucene_version", "5.3.1"); // 避免控制台警告,默认使用LUCENE_CURRENT properties.put("hibernate.search.default.indexBase", "../amanda/searchIndexes"); // properties.put("hibernate.show_sql", "true"); // properties.put("hibernate.format_sql", "true"); properties.put("hibernate.use_sql_comments", "true"); properties.put("hibernate.physical_naming_strategy", "com.timeyang.amanda.core.jpa.naming.PhysicalNamingStrategyImpl"); LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean(); factory.setDataSource(this.dataSource); factory.setJpaVendorAdapter(jpaVendorAdapter()); factory.setPackagesToScan(AmandaApplication.class.getPackage().getName()); factory.setSharedCacheMode(SharedCacheMode.ENABLE_SELECTIVE); factory.setValidationMode(ValidationMode.NONE); factory.setLoadTimeWeaver(this.loadTimeWeaver()); // TODO: remove when SPR-10856 fixed factory.setJpaPropertyMap(properties); return factory; }
private PersistenceUnitInfo createPersistenceUnitInfo() { PersistenceUnitInfo persistenceUnitInfo = mock(PersistenceUnitInfo.class); when(persistenceUnitInfo.getPersistenceUnitRootUrl()).thenReturn(createPersistenceUnitRootUrl()); when(persistenceUnitInfo.getPersistenceUnitName()).thenReturn("annotation-based-field-access"); when(persistenceUnitInfo.getTransactionType()) .thenReturn(PersistenceUnitTransactionType.RESOURCE_LOCAL); when(persistenceUnitInfo.getValidationMode()).thenReturn(ValidationMode.AUTO); when(persistenceUnitInfo.getSharedCacheMode()).thenReturn(SharedCacheMode.UNSPECIFIED); when(persistenceUnitInfo.getJtaDataSource()).thenReturn(null); when(persistenceUnitInfo.getNonJtaDataSource()).thenReturn(null); when(persistenceUnitInfo.getNewTempClassLoader()).thenReturn(null); when(persistenceUnitInfo.getMappingFileNames()).thenReturn(Collections.<String>emptyList()); when(persistenceUnitInfo.getJarFileUrls()).thenReturn(Collections.<URL>emptyList()); when(persistenceUnitInfo.getPersistenceProviderClassName()) .thenReturn(SecurePersistenceProvider.class.getName()); when(persistenceUnitInfo.getClassLoader()) .thenReturn(Thread.currentThread().getContextClassLoader()); when(persistenceUnitInfo.getManagedClassNames()).thenReturn(Arrays.asList( FieldAccessAnnotationTestBean.class.getName(), FieldAccessMapKey.class.getName(), FieldAccessMapValue.class.getName() )); when(persistenceUnitInfo.excludeUnlistedClasses()).thenReturn(true); Properties properties = new Properties(); properties.put("org.jpasecurity.persistence.provider", "org.hibernate.ejb.HibernatePersistence"); properties.put("org.jpasecurity.security.context", "org.jpasecurity.security.authentication.TestSecurityContext"); properties.put("org.jpasecurity.security.rules.provider", "org.jpasecurity.security.rules.XmlAccessRulesProvider"); properties.put("hibernate.hbm2ddl.auto", "create-drop"); properties.put("hibernate.dialect", "org.hibernate.dialect.HSQLDialect"); properties.put("hibernate.connection.driver_class", "org.hsqldb.jdbcDriver"); properties.put("hibernate.connection.url", "jdbc:hsqldb:mem:test"); properties.put("hibernate.connection.username", "sa"); properties.put("hibernate.connection.password", ""); when(persistenceUnitInfo.getProperties()).thenReturn(properties); return persistenceUnitInfo; }
@Bean public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() throws ConfigurationException, IOException { Map<String, Object> properties = new Hashtable<>(); String indexPath = this.configuration().getString(GlobalConfig.INDEX_PATH); if (indexPath == null) { indexPath = GlobalConfig.INDEX_PATH_DEFAULT; } properties.put("javax.persistence.schema-generation.database.action", "none"); properties.put("hibernate.connection.characterEncoding", "utf8"); properties.put("hibernate.connection.useUnicode", "true"); properties.put("hibernate.connection.charSet", "utf8"); properties.put("hibernate.search.default.directory_provider", "filesystem"); properties.put("hibernate.search.default.indexBase", indexPath); HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter(); adapter.setDatabasePlatform("org.hibernate.dialect.MySQL5InnoDBDialect"); LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean(); factory.setJpaVendorAdapter(adapter); factory.setDataSource(this.chatDataSource()); factory.setPackagesToScan("net.viperfish.chatapplication"); factory.setSharedCacheMode(SharedCacheMode.ENABLE_SELECTIVE); factory.setValidationMode(ValidationMode.NONE); factory.setJpaPropertyMap(properties); return factory; }
@Override protected Map<String, Object> getVendorProperties() { LOGGER.info("PersistenceConfiguration.getVendorProperties()"); HashMap<String, Object> vendorProperties = new HashMap<>(); vendorProperties.put(PersistenceUnitProperties.WEAVING, detectWeavingMode()); vendorProperties.put(PersistenceUnitProperties.VALIDATION_MODE, ValidationMode.NONE.toString()); return vendorProperties; }
@Override public ValidationMode getValidationMode() { if (definition.validationMode.isEmpty()) { return ValidationMode.AUTO; } return ValidationMode.valueOf(definition.validationMode); }
@Override public ValidationMode getValidationMode() { PersistenceUnitValidationModeType validationMode = persistenceUnitXml.getValidationMode(); if (validationMode == null) { return null; } return ValidationMode.valueOf(validationMode.name()); }
@Override public ValidationMode getValidationMode() { PersistenceUnitValidationModeType validationMode = persistenceUnitXml.getValidationMode(); if (validationMode == null) return null; return ValidationMode.valueOf(validationMode.name()); }
@Before public void createFactory() throws MalformedURLException { GetterPersistenceUnitInfo info = new GetterPersistenceUnitInfo(); info.setClassLoader(Thread.currentThread().getContextClassLoader()); //we explicitly list them to avoid scanning info.setExcludeUnlistedClasses(true); info.setJtaDataSource(new NoopDatasource()); List<String> classNames = new ArrayList<String>(); for (Class<?> clazz : getEntities()) { classNames.add(clazz.getName()); } info.setManagedClassNames(classNames); info.setNonJtaDataSource(null); info.setPersistenceProviderClassName(HibernateOgmPersistence.class.getName()); info.setPersistenceUnitName("default"); final URL persistenceUnitRootUrl = new File("").toURL(); info.setPersistenceUnitRootUrl(persistenceUnitRootUrl); info.setPersistenceXMLSchemaVersion("2.0"); info.setProperties(new Properties()); info.setSharedCacheMode(SharedCacheMode.ENABLE_SELECTIVE); info.setTransactionType(PersistenceUnitTransactionType.JTA); info.setValidationMode(ValidationMode.AUTO); info.getProperties().setProperty(Environment.JTA_PLATFORM, JBossStandAloneJtaPlatform.class.getName() ); // MassIndexerFactoryIntegrator is defined at 4.3.0 // info.getProperties().setProperty(MassIndexerFactoryIntegrator.MASS_INDEXER_FACTORY_CLASSNAME, OgmMassIndexerFactory.class.getName()); for (Map.Entry<String, String> entry : TestHelper.getEnvironmentProperties().entrySet()) { info.getProperties().setProperty(entry.getKey(), entry.getValue()); } refineInfo(info); factory = new HibernateOgmPersistence().createContainerEntityManagerFactory(info, Collections.EMPTY_MAP); transactionManager = extractJBossTransactionManager(factory); }
public ValidationMode getValidationMode() { if (validationMode == null) { final String propConfig = getProperty("javax.persistence.validation.mode"); if (propConfig != null) { try { validationMode = ValidationMode.valueOf(propConfig.toUpperCase()); } catch (final IllegalArgumentException iae) { // can happen since some provider allow more than the enum // no-op } } } return (validationMode == null) ? ValidationMode.AUTO : validationMode; }
public synchronized void setValidationMode(final ValidationMode mode) { final PersistenceUnitInfoImpl info = entityManagerFactoryCallable.getUnitInfo(); info.setValidationMode(mode); final Properties properties = entityManagerFactoryCallable.getUnitInfo().getProperties(); if (properties.containsKey(JAVAX_PERSISTENCE_VALIDATION_MODE)) { properties.setProperty(JAVAX_PERSISTENCE_VALIDATION_MODE, mode.name()); } }
@ManagedOperation @Description("change the validation mode if possible (value is ok)") public void setValidationMode(final String value) { try { final ValidationMode mode = ValidationMode.valueOf(value.trim().toUpperCase()); reloadableEntityManagerFactory.setValidationMode(mode); } catch (final Exception iae) { LOGGER.warning("Can't set validation mode " + value, iae); reloadableEntityManagerFactory.setProperty(JAVAX_PERSISTENCE_VALIDATION_MODE, value); } }
@Override public ValidationMode getValidationMode() { String s = (String) parsedPersistenceUnit.getPersistenceXmlMetadata() .get(ParsedPersistenceUnit.VALIDATION_MODE); if (s == null) { return ValidationMode.AUTO; } else { return ValidationMode.valueOf(s); } }
@Override public ValidationMode getValidationMode() { return null; }
@Override public ValidationMode getValidationMode() { return this.validationMode; }
public void setValidationMode(ValidationMode validationMode) { this.validationMode = validationMode; }
@Override public ValidationMode getValidationMode() { return delegate.getValidationMode(); }
/** * Parse the unit info DOM element. */ protected SpringPersistenceUnitInfo parsePersistenceUnitInfo(Element persistenceUnit, String version, URL rootUrl) throws IOException { SpringPersistenceUnitInfo unitInfo = new SpringPersistenceUnitInfo(); // set JPA version (1.0 or 2.0) unitInfo.setPersistenceXMLSchemaVersion(version); // set persistence unit root URL unitInfo.setPersistenceUnitRootUrl(rootUrl); // set unit name unitInfo.setPersistenceUnitName(persistenceUnit.getAttribute(UNIT_NAME).trim()); // set transaction type String txType = persistenceUnit.getAttribute(TRANSACTION_TYPE).trim(); if (StringUtils.hasText(txType)) { unitInfo.setTransactionType(PersistenceUnitTransactionType.valueOf(txType)); } // evaluate data sources String jtaDataSource = DomUtils.getChildElementValueByTagName(persistenceUnit, JTA_DATA_SOURCE); if (StringUtils.hasText(jtaDataSource)) { unitInfo.setJtaDataSource(this.dataSourceLookup.getDataSource(jtaDataSource.trim())); } String nonJtaDataSource = DomUtils.getChildElementValueByTagName(persistenceUnit, NON_JTA_DATA_SOURCE); if (StringUtils.hasText(nonJtaDataSource)) { unitInfo.setNonJtaDataSource(this.dataSourceLookup.getDataSource(nonJtaDataSource.trim())); } // provider String provider = DomUtils.getChildElementValueByTagName(persistenceUnit, PROVIDER); if (StringUtils.hasText(provider)) { unitInfo.setPersistenceProviderClassName(provider.trim()); } // exclude unlisted classes Element excludeUnlistedClasses = DomUtils.getChildElementByTagName(persistenceUnit, EXCLUDE_UNLISTED_CLASSES); if (excludeUnlistedClasses != null) { String excludeText = DomUtils.getTextValue(excludeUnlistedClasses); unitInfo.setExcludeUnlistedClasses(!StringUtils.hasText(excludeText) || Boolean.valueOf(excludeText)); } // set JPA 2.0 shared cache mode String cacheMode = DomUtils.getChildElementValueByTagName(persistenceUnit, SHARED_CACHE_MODE); if (StringUtils.hasText(cacheMode)) { unitInfo.setSharedCacheMode(SharedCacheMode.valueOf(cacheMode)); } // set JPA 2.0 validation mode String validationMode = DomUtils.getChildElementValueByTagName(persistenceUnit, VALIDATION_MODE); if (StringUtils.hasText(validationMode)) { unitInfo.setValidationMode(ValidationMode.valueOf(validationMode)); } parseProperties(persistenceUnit, unitInfo); parseManagedClasses(persistenceUnit, unitInfo); parseMappingFiles(persistenceUnit, unitInfo); parseJarFiles(persistenceUnit, unitInfo); return unitInfo; }
public ValidationMode getValidationMode() { return validationMode; }
@Override public ValidationMode getValidationMode() { return ValidationMode.AUTO; }
public void setValidationMode(ValidationMode mode) { validationMode = mode; }
public ValidationMode getValidationMode() { return delegate.getValidationMode(); }
public MutablePersistenceUnitInfo createUnit(Class<? extends Annotation> qualifier, String unitName) { ClassLoader classLoader = holder.getCurrentReloadableClassLoader(); MutablePersistenceUnitInfo result = new MutablePersistenceUnitInfo(); result.setExcludeUnlistedClasses(true); result.setValidationMode(ValidationMode.NONE); result.setPersistenceUnitName(unitName); result.setSharedCacheMode(SharedCacheMode.ENABLE_SELECTIVE); try { result.setPersistenceUnitRootUrl(new URL("http://foo.foo")); } catch (MalformedURLException e) { throw new RuntimeException(e); } result.addProperty(PersistenceUnitProperties.SESSION_CUSTOMIZER, CompositeSessionCustomizer.class.getName()); // search for entities { Set<Class<?>> jpaAnnotations = new HashSet<>( Arrays.asList(Entity.class, MappedSuperclass.class, Embeddable.class)); for (ClassNode classNode : index.getAllNodes()) { String className = Type.getObjectType(classNode.name).getClassName(); if (classNode.visibleAnnotations == null) continue; boolean jpaAnnotationFound = false; for (AnnotationNode annotation : classNode.visibleAnnotations) { Class<?> annotationClass = AsmUtil.loadClass(Type.getType(annotation.desc), classLoader); // test if the annotation is one of the jpa annotations if (jpaAnnotations.contains(annotationClass)) jpaAnnotationFound = true; } if (jpaAnnotationFound && isPartOfPU(classNode, qualifier, classLoader)) { result.addManagedClassName(className); } } } // search converters { index.getAllChildren(AttributeConverter.class).stream() .filter(node -> isPartOfPU(node, qualifier, classLoader)) .map(node -> AsmUtil.loadClass(Type.getObjectType(node.name), classLoader)).forEach(cls -> { Converter converter = cls.getAnnotation(Converter.class); if (converter != null && converter.autoApply()) result.addManagedClassName(cls.getName()); }); } return result; }