动态添加实体到休眠

时间:2012-07-21 03:24:07

标签: spring hibernate dynamic entity

我们如何向hibernate添加更多实体?我的是一个基于spring和hibernate构建的独立应用程序。

我有关于新实体的类文件的元数据。如何在不重新启动或更改confugation XML文件的情况下将它们添加到hibernate会话工厂?

所有映射都由hibernate本身管理。并且只有连接参数等配置在XML中维护。

简而言之,如果我有实体的类文件位置,我如何指示hibernate从那里拾取实体,而无需重新启动或更改配置文件? < / em>的

感谢。

2 个答案:

答案 0 :(得分:2)

来自Hibernate docs

  

SessionFactory的内部状态是不可变的。创建后,将设置此内部状态。此内部状态包括有关对象/关系映射的所有元数据。

您可以为每组动态加载的实体设置单独的SessionFactory。为其创建Configurationadd your new classes。用它来创建new SessionFactoryEntityManagerFactory

答案 1 :(得分:1)

执行此操作的方式如下:

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...