Java 如何在Hibernate 5中使用Integrator服务添加带注释的类
这是关于和的 Hibernate4似乎有一个很好的方法可以使用 org.hibernate.integrator.spi.integrator服务 现在,当使用Hibernate 5时,Integrator接口的集成方法给了我Java 如何在Hibernate 5中使用Integrator服务添加带注释的类,java,hibernate,maven,jetty,hibernate-5.x,Java,Hibernate,Maven,Jetty,Hibernate 5.x,这是关于和的 Hibernate4似乎有一个很好的方法可以使用 org.hibernate.integrator.spi.integrator服务 现在,当使用Hibernate 5时,Integrator接口的集成方法给了我 public void integrate(Metadata metadata, SessionFactoryImplementor sessionFactory, SessionFactoryServiceRegistry serviceRegistry
public void integrate(Metadata metadata, SessionFactoryImplementor sessionFactory,
SessionFactoryServiceRegistry serviceRegistry)
{
}
其中元数据的类型为org.hibernate.boot.metadata
我无法调用addAnnotatedClass(),也无法获取Hibernate 4中的原始配置对象
我该怎么处理这件事
我正在使用maven和jetty
我没有使用spring(因此请不要提供任何基于spring的解决方案)这实际上与我在周末忙于Hibernate 5的事情有关。您可以在中阅读与
配置
类相关的计划更改。获取所有加载的实体类(包括注释实体)信息的新位置是您提到的元数据类。它有一个方法,该方法将返回已知所有实体的PersistentClass
实体元数据表示形式。但是,此集合
是不可变的
建议您重新考虑在运行时使用集成器添加实体绑定。这在过去可能有效,但文档明确指出这不是故意的,因为这应该在初始化时完成。元数据
和SessionFactoryImplementor
一旦构建,在很大程度上是不可变的,因此,Integrator
的目的不是修改这些配置项,而是将它们用作有关如何使用SessionFactoryServiceRegistry
配置新的服务
集成的信息
如果您觉得在运行时配置会话
以查找所有带注释的类很烦人,我建议您尝试使用初始化Hibernate的方法,因为它更简单,并且使用标准JPA语法,如果需要,可以切换到少数其他提供程序。这将代表您自动扫描带注释的实体。API更为简化和有限,但如果您真的需要本机Hibernate特定功能的强大功能,有一种方法可以实现。这实际上与我在周末忙于学习Hibernate 5时遇到的问题有关。您可以在中阅读与配置
类相关的计划更改。获取所有加载的实体类(包括注释实体)信息的新位置是您提到的元数据类。它有一个方法,该方法将返回已知所有实体的PersistentClass
实体元数据表示形式。但是,此集合
是不可变的
建议您重新考虑在运行时使用集成器添加实体绑定。这在过去可能有效,但文档明确指出这不是故意的,因为这应该在初始化时完成。元数据
和SessionFactoryImplementor
一旦构建,在很大程度上是不可变的,因此,Integrator
的目的不是修改这些配置项,而是将它们用作有关如何使用SessionFactoryServiceRegistry
配置新的服务
集成的信息
如果您觉得在运行时配置会话
以查找所有带注释的类很烦人,我建议您尝试使用初始化Hibernate的方法,因为它更简单,并且使用标准JPA语法,如果需要,可以切换到少数其他提供程序。这将代表您自动扫描带注释的实体。API更加简化和有限,但是如果您真的需要本机Hibernate特定功能的强大功能,有一种方法可以实现