下面列出了怎么用org.hibernate.jpa.HibernatePersistenceProvider的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Extract the requested persistence provider name using the algorithm Hibernate uses. Namely, a provider named
* in the 'integration' map (under the key '{@value AvailableSettings#JPA_PERSISTENCE_PROVIDER}') is preferred, as per-spec, over
* value specified in persistence unit.
*
* @param persistenceUnit The {@code <persistence-unit/>} descriptor.
* @param integration The integration values.
*
* @return The extracted provider name, or {@code null} if none found.
*/
public static String extractRequestedProviderName(PersistenceUnitDescriptor persistenceUnit, Map integration) {
final String integrationProviderName = extractProviderName( integration );
if ( integrationProviderName != null ) {
log.debugf( "Integration provided explicit PersistenceProvider [%s]", integrationProviderName );
return integrationProviderName;
}
final String persistenceUnitRequestedProvider = extractProviderName( persistenceUnit );
if ( persistenceUnitRequestedProvider != null ) {
log.debugf(
"Persistence-unit [%s] requested PersistenceProvider [%s]",
persistenceUnit.getName(),
persistenceUnitRequestedProvider
);
return persistenceUnitRequestedProvider;
}
// NOTE : if no provider requested we assume we are the provider (the calls got to us somehow...)
log.debug( "No PersistenceProvider explicitly requested, assuming Hibernate" );
return HibernatePersistenceProvider.class.getName();
}
@Bean
public EntityManagerFactory entityManagerFactory() {
// final Database database = Database.valueOf(vendor.toUpperCase());
final LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("CCRI_PERSISTENCE_UNIT");
// factory.setJpaVendorAdapter(vendorAdapter);
factory.setPackagesToScan("uk.nhs.careconnect.ri.database.entity");
factory.setDataSource(dataSource());
factory.setPersistenceProvider(new HibernatePersistenceProvider());
factory.setJpaProperties(jpaProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Bean
public EntityManagerFactory entityManagerFactory() {
// final Database database = Database.valueOf(vendor.toUpperCase());
final LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("CCRI_PERSISTENCE_UNIT");
// factory.setJpaVendorAdapter(vendorAdapter);
factory.setPackagesToScan("uk.nhs.careconnect.ri.database.entity");
factory.setDataSource(dataSource());
factory.setPersistenceProvider(new HibernatePersistenceProvider());
factory.setJpaProperties(jpaProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Before
public void init() {
PersistenceUnitInfo persistenceUnitInfo = persistenceUnitInfo(getClass().getSimpleName());
Map<String, Object> configuration = new HashMap<>();
Integrator integrator = integrator();
if (integrator != null) {
configuration.put("hibernate.integrator_provider", (IntegratorProvider) () -> Collections.singletonList(integrator));
}
emf = new HibernatePersistenceProvider().createContainerEntityManagerFactory(
persistenceUnitInfo,
configuration
);
}
@Test
public void classesShouldExtendRapidoidThing() {
for (String cls : Cls.getRapidoidClasses()) {
if (cls.startsWith("org.rapidoid.plugin.app.")
|| cls.startsWith("org.rapidoid.test.")) continue;
Class<?> clazz = Cls.get(cls);
if (!clazz.isInterface() && !clazz.isEnum() && !clazz.isAnnotation()) {
U.must(RapidoidThing.class.isAssignableFrom(clazz)
|| clazz == TestCommons.class
|| Exception.class.isAssignableFrom(clazz)
|| ClassLoader.class.isAssignableFrom(clazz)
|| HibernatePersistenceProvider.class.isAssignableFrom(clazz)
|| OutputStream.class.isAssignableFrom(clazz)
|| Map.class.isAssignableFrom(clazz)
|| JsonSerializer.class.isAssignableFrom(clazz)
|| JsonDeserializer.class.isAssignableFrom(clazz)
|| LogFactory.class.isAssignableFrom(clazz)
|| Thread.class.isAssignableFrom(clazz), "" + cls);
}
}
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
entityManagerFactoryBean.setPersistenceUnitName(persistenceUnitName());
entityManagerFactoryBean.setPersistenceProvider(new HibernatePersistenceProvider());
entityManagerFactoryBean.setDataSource(dataSource());
entityManagerFactoryBean.setPackagesToScan(packagesToScan());
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
entityManagerFactoryBean.setJpaVendorAdapter(vendorAdapter);
entityManagerFactoryBean.setJpaProperties(additionalProperties());
return entityManagerFactoryBean;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
entityManagerFactoryBean.setDataSource(dataSource());
entityManagerFactoryBean
.setPersistenceProviderClass(HibernatePersistenceProvider.class);
entityManagerFactoryBean
.setPackagesToScan(env
.getRequiredProperty(PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN));
entityManagerFactoryBean.setJpaProperties(hibProperties());
return entityManagerFactoryBean;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
entityManagerFactoryBean.setDataSource(dataSource());
entityManagerFactoryBean
.setPersistenceProviderClass(HibernatePersistenceProvider.class);
entityManagerFactoryBean
.setPackagesToScan(env
.getRequiredProperty(PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN));
entityManagerFactoryBean.setJpaProperties(hibProperties());
return entityManagerFactoryBean;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource) {
LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
emf.setDataSource(dataSource);
emf.setPackagesToScan(Post.class.getPackage().getName());
emf.setPersistenceProvider(new HibernatePersistenceProvider());
emf.setJpaProperties(jpaProperties());
return emf;
}
/**
* Is the requested provider name one of the recognized Hibernate provider names?
*
* @param requestedProviderName The requested provider name to check against the recognized Hibernate names.
*
* @return {@code true} if Hibernate should be the provider; {@code false} otherwise.
*/
public static boolean hibernateProviderNamesContain(String requestedProviderName) {
log.tracef(
"Checking requested PersistenceProvider name [%s] against Hibernate provider names",
requestedProviderName
);
return HibernatePersistenceProvider.class.getName().equals( requestedProviderName );
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
entityManagerFactoryBean.setPersistenceUnitName(getClass().getSimpleName());
entityManagerFactoryBean.setPersistenceProvider(new HibernatePersistenceProvider());
entityManagerFactoryBean.setDataSource(dataSource());
entityManagerFactoryBean.setPackagesToScan(packagesToScan());
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
entityManagerFactoryBean.setJpaVendorAdapter(vendorAdapter);
entityManagerFactoryBean.setJpaProperties(additionalProperties());
return entityManagerFactoryBean;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
entityManagerFactoryBean.setPersistenceUnitName(getClass().getSimpleName());
entityManagerFactoryBean.setPersistenceProvider(new HibernatePersistenceProvider());
entityManagerFactoryBean.setDataSource(dataSource());
entityManagerFactoryBean.setPackagesToScan(packagesToScan());
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
entityManagerFactoryBean.setJpaVendorAdapter(vendorAdapter);
entityManagerFactoryBean.setJpaProperties(additionalProperties());
return entityManagerFactoryBean;
}
@Bean
@DependsOn("btmConfig")
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean localContainerEntityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
localContainerEntityManagerFactoryBean.setPersistenceUnitName(getClass().getSimpleName());
localContainerEntityManagerFactoryBean.setPersistenceProvider(new HibernatePersistenceProvider());
localContainerEntityManagerFactoryBean.setJtaDataSource(dataSource());
localContainerEntityManagerFactoryBean.setPackagesToScan(packagesToScan());
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
localContainerEntityManagerFactoryBean.setJpaVendorAdapter(vendorAdapter);
localContainerEntityManagerFactoryBean.setJpaProperties(additionalProperties());
return localContainerEntityManagerFactoryBean;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean localContainerEntityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
localContainerEntityManagerFactoryBean.setPersistenceUnitName(getClass().getSimpleName());
localContainerEntityManagerFactoryBean.setPersistenceProvider(new HibernatePersistenceProvider());
localContainerEntityManagerFactoryBean.setDataSource(dataSource());
localContainerEntityManagerFactoryBean.setPackagesToScan(packagesToScan());
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
localContainerEntityManagerFactoryBean.setJpaVendorAdapter(vendorAdapter);
localContainerEntityManagerFactoryBean.setJpaProperties(additionalProperties());
return localContainerEntityManagerFactoryBean;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
entityManagerFactoryBean.setPersistenceUnitName(getClass().getSimpleName());
entityManagerFactoryBean.setPersistenceProvider(new HibernatePersistenceProvider());
entityManagerFactoryBean.setDataSource(dataSource());
entityManagerFactoryBean.setPackagesToScan(packagesToScan());
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
HibernateJpaDialect jpaDialect = vendorAdapter.getJpaDialect();
jpaDialect.setPrepareConnection(false);
entityManagerFactoryBean.setJpaVendorAdapter(vendorAdapter);
entityManagerFactoryBean.setJpaProperties(additionalProperties());
return entityManagerFactoryBean;
}
@Bean @DependsOn("flyway")
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean localContainerEntityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
localContainerEntityManagerFactoryBean.setPersistenceUnitName(getClass().getSimpleName());
localContainerEntityManagerFactoryBean.setPersistenceProvider(new HibernatePersistenceProvider());
localContainerEntityManagerFactoryBean.setDataSource(dataSource());
localContainerEntityManagerFactoryBean.setPackagesToScan(packagesToScan());
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
localContainerEntityManagerFactoryBean.setJpaVendorAdapter(vendorAdapter);
localContainerEntityManagerFactoryBean.setJpaProperties(additionalProperties());
return localContainerEntityManagerFactoryBean;
}
@Bean(name = "entityManagerFactory")
@DependsOn({"liquibase", "dataSource"})
LocalContainerEntityManagerFactoryBean emf(JpaVendorAdapter jpaVendorAdapter) {
SimpleHiloIdentifierGenerator.setDataSource(dataSource());
LocalContainerEntityManagerFactoryBean fb = new LocalContainerEntityManagerFactoryBean();
fb.setJpaProperties(hibernateProperties());
fb.setDataSource(dataSource());
fb.setPersistenceProviderClass(HibernatePersistenceProvider.class);
fb.setPackagesToScan("io.cloudslang");
fb.setJpaVendorAdapter(jpaVendorAdapter);
return fb;
}
@Bean
@DependsOn("liquibase")
LocalContainerEntityManagerFactoryBean entityManagerFactory(JpaVendorAdapter jpaVendorAdapter) {
LocalContainerEntityManagerFactoryBean fb = new LocalContainerEntityManagerFactoryBean();
fb.setDataSource(dataSource());
fb.setPersistenceProviderClass(HibernatePersistenceProvider.class);
fb.setPackagesToScan("io.cloudslang.engine.partitions");
fb.setJpaVendorAdapter(jpaVendorAdapter);
return fb;
}
@Bean(name = "entityManagerFactory")
@DependsOn("liquibase")
LocalContainerEntityManagerFactoryBean emf(JpaVendorAdapter jpaVendorAdapter) {
LocalContainerEntityManagerFactoryBean fb = new LocalContainerEntityManagerFactoryBean();
fb.setJpaProperties(hibernateProperties());
fb.setDataSource(dataSource());
fb.setPersistenceProviderClass(HibernatePersistenceProvider.class);
fb.setPackagesToScan("io.cloudslang.engine.versioning");
fb.setJpaVendorAdapter(jpaVendorAdapter);
return fb;
}
@Bean(name = "entityManagerFactory")
@DependsOn("liquibase")
LocalContainerEntityManagerFactoryBean emf(JpaVendorAdapter jpaVendorAdapter) {
LocalContainerEntityManagerFactoryBean fb = new LocalContainerEntityManagerFactoryBean();
fb.setJpaProperties(hibernateProperties());
fb.setDataSource(dataSource());
fb.setPersistenceProviderClass(HibernatePersistenceProvider.class);
fb.setPackagesToScan("io.cloudslang.engine.node");
fb.setJpaVendorAdapter(jpaVendorAdapter);
return fb;
}
@Bean(name = "entityManagerFactory")
@DependsOn("liquibase")
LocalContainerEntityManagerFactoryBean emf(JpaVendorAdapter jpaVendorAdapter, Properties jpaProperties) {
LocalContainerEntityManagerFactoryBean fb = new LocalContainerEntityManagerFactoryBean();
fb.setDataSource(dataSource());
fb.setJpaProperties(jpaProperties);
fb.setPersistenceProviderClass(HibernatePersistenceProvider.class);
fb.setPackagesToScan("io.cloudslang");
fb.setJpaVendorAdapter(jpaVendorAdapter);
return fb;
}
@Bean
@DependsOn("liquibase")
LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource) {
//Init the IdentityManager
SimpleHiloIdentifierGenerator.setDataSource(dataSource);
//Now create the bean
LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
emf.setDataSource(dataSource);
emf.setJpaProperties(jpaProperties());
emf.setJpaVendorAdapter(jpaVendorAdapter());
emf.setPersistenceProviderClass(HibernatePersistenceProvider.class);
emf.setPackagesToScan("io.cloudslang");
return emf;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
emf.setDataSource(dataSource());
emf.setPackagesToScan("com.hantsylabs.example.spring.model");
emf.setPersistenceProvider(new HibernatePersistenceProvider());
emf.setJpaProperties(jpaProperties());
return emf;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
emf.setDataSource(dataSource());
emf.setPackagesToScan("com.hantsylabs.example.spring.model");
emf.setPersistenceProvider(new HibernatePersistenceProvider());
emf.setJpaProperties(jpaProperties());
return emf;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
emf.setDataSource(dataSource());
emf.setPackagesToScan("com.hantsylabs.example.spring.model");
emf.setPersistenceProvider(new HibernatePersistenceProvider());
emf.setJpaProperties(jpaProperties());
return emf;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
emf.setDataSource(dataSource());
emf.setPackagesToScan("com.hantsylabs.example.spring.model");
emf.setPersistenceProvider(new HibernatePersistenceProvider());
emf.setJpaProperties(jpaProperties());
return emf;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
emf.setDataSource(dataSource());
emf.setPackagesToScan("com.hantsylabs.example.spring.model");
emf.setPersistenceProvider(new HibernatePersistenceProvider());
emf.setJpaProperties(jpaProperties());
return emf;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
emf.setDataSource(dataSource());
emf.setPackagesToScan("com.hantsylabs.example.spring.model");
emf.setPersistenceProvider(new HibernatePersistenceProvider());
emf.setJpaProperties(jpaProperties());
return emf;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
emf.setDataSource(dataSource());
emf.setPackagesToScan("com.hantsylabs.example.spring.model");
emf.setPersistenceProvider(new HibernatePersistenceProvider());
emf.setJpaProperties(jpaProperties());
return emf;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
emf.setDataSource(dataSource());
emf.setPackagesToScan("com.hantsylabs.example.spring.model");
emf.setPersistenceProvider(new HibernatePersistenceProvider());
emf.setJpaProperties(jpaProperties());
return emf;
}