Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Hibernate 5中使用Integrator服务添加带注释的类_Java_Hibernate_Maven_Jetty_Hibernate 5.x - Fatal编程技术网

Java 如何在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

这是关于和的

Hibernate4似乎有一个很好的方法可以使用 org.hibernate.integrator.spi.integrator服务

现在,当使用Hibernate 5时,Integrator接口的集成方法给了我

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特定功能的强大功能,有一种方法可以实现