java - 获取Hibernate在Spring中的配置

标签 java hibernate spring jpa

我的项目使用了 Spring、JPA 和 Hibernate,因此所有 EntityManager 都由 Spring 注入(inject)。

我需要访问持久类的元数据,例如列长度和可选性。我知道获取此信息的唯一方法是通过 Hibernate 的 Configuration.getClassMapping(String className)。在没有JPA和Spring的纯Hibernate项目中,可以在创建SessionFactory(即new Configuration().configure().buildSessionFactory())后保留Configuration,但是由于Spring使用LocalEntityManagerFactoryBean创建了EntityManagerFactory形式的SessionFactory,我不确定从哪里获取配置。

如果无法从 Spring 检索配置,是否有任何其他方法可以访问持久类的元数据?

谢谢。

最佳答案

事实证明,这是不可能的。 Spring 使用在 persistence.xml 文件中指定的 PersistenceProvider 实现以标准方式创建 EntityManagerFactory。 HibernatePersistence,即Hibernate对PersistenceProvider的实现,使用后不保留Configuration对象。为了公开配置,您需要自己实现 PersistenceProvider,这没什么大不了的。

关于java - 获取Hibernate在Spring中的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3847172/

相关文章:

java - 按下事件时的 Android 小部件按钮

c# - 跟踪、识别和报告应用程序引发的每个 'error message' 的有效方法是什么?

hibernate 外键

hibernate - 为什么 hibernate session.close() 不自动刷新数据?

java - 由于 Property 类中的 NoSuchMethodError 导致 Spring BeanCreationException

java - Spring Boot 和 Angular 身份验证 - 如何保护应用程序?

java - 无法拆分字符串

java - JDBC Oracle - 获取查询的解释计划

java - 基于日期的ehcache

java - 与 Maven 依赖项冲突(Spring 和 Hibernate)