使用 Spring Data 时,我应该如何注册自定义 Hibernate 5 数据类型 (BasicType)?
我使用Spring Data并决定要创建可在Hibernate实体中使用的新自定义数据类型。我检查了文档,并根据此官方用户指南选择并实施了它。BasicType
我希望能够在其类名下注册该类型,并能够在实体中使用新类型而无需进行注释。不幸的是,我无法引用或休眠配置来注册新类型。有没有办法在春季数据中获取它?似乎休眠的初始化对用户是隐藏的,并且不容易访问。我们使用以下类来初始化 JPA:@Type
MetadataBuilder
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef = "entityManagerFactory",
transactionManagerRef = "transactionManager",
basePackages = {
"..." // omitted
}
)
public class JpaConfiguration implements TransactionManagementConfigurer {
@Primary
@Bean(name = "entityManagerFactory")
public LocalContainerEntityManagerFactoryBean configureEntityManagerFactory(
DataSource dataSource,
SchemaPerTenantConnectionProviderImpl provider) {
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
entityManagerFactoryBean.setPersistenceUnitName("defaultPersistenceUnit");
entityManagerFactoryBean.setDataSource(dataSource);
entityManagerFactoryBean.setPackagesToScan(
"..." // omitted
);
entityManagerFactoryBean.setJpaProperties(properties(provider));
entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
return entityManagerFactoryBean;
}
@Primary
@Bean(name = "transactionManager")
public PlatformTransactionManager annotationDrivenTransactionManager() {
return new JpaTransactionManager();
}
private Properties properties(SchemaPerTenantConnectionProviderImpl provider) {
Properties properties = new Properties();
// omitted
return properties;
}
}
我发现了很多关于如何使用Hibernate的配置对象来做到这一点的文章,但这篇文章指的是Hibernate 3和4。我还找到了如何通过Hibernate做到这一点的方法,但是当我根据我发现的文章使用它时,我会得到异常消息“org.hibernate.HibernateException:此时无法更改TypeRegistry”在Spring Data中注册自定义类型的正确方法是什么?org.hibernate.integrator.spi.Integrator