我们如何添加更多实体来休眠?Mine 是一个基于 spring 和 hibernate 的独立应用程序。
我有关于新实体的类文件的元数据。如何在不重新启动或更改配置 XML 文件的情况下将它们添加到休眠会话工厂?
所有的映射都由 hibernate 自己管理。并且只有像连接参数这样的配置是在 XML 中维护的。
简而言之,如果我有实体的类文件位置,我如何指示 hibernate 从那里拾取实体,而无需重新启动或更改配置文件?
谢谢。
从休眠文档:
SessionFactory 的内部状态是不可变的。一旦它被创建,这个内部状态就会被设置。此内部状态包括有关对象/关系映射的所有元数据。
您可以做的是为每组动态加载的实体设置一个单独的 SessionFactory。创建一个配置并将您的新类添加到其中。使用它来创建一个新的 SessionFactory或EntityManagerFactory。
这样做的方法如下:
Configuration configuration = new Configuration().configure("hibernate.cfg.xml"); // base configuration
configuration.addAnnotatedClass(MyClass1.class); // @Entity classes
configuration.addAnnotatedClass(MyClass2.class);
configuration.addAnnotatedClass(MyClassN.class);
Session session = configuration.buildSessionFactory().openSession();
// Work with session...