如何从hbm文件动态创建表?
我的产品有多个客户。为了添加新的客户端,客户端将提供hbm
映射文件来存储数据。 (每个客户端具有不同的数据和表)。
hbm
文件位置调用REST api。
休眠如何动态读取hbm文件来创建表?
答案 0 :(得分:0)
嗨,这将是一个两步过程。
您需要在运行时创建 Hibernate Session Factory ,以便在收到hbm文件后强制hibernate创建表。您可以在配置中使用以下属性来做到这一点:
hibernate.hbm2ddl.auto
在同一配置文件中,您需要引用传入的文件。您可以做一些模板魔术,也可以添加传入的程序化代码。您需要检查一下。您可以自己检查如何做得最好,我相信休眠4可以通过编程方式完成。
答案 1 :(得分:0)
动态加载hbm文件的示例代码:
public class LoadHBMFile {
private static final SessionFactory session = createSession();
private static SessionFactory createSession() {
try {
SessionFactory sessionFactory = new Configuration()
.configure("hibernate.cfg.xml")
.addResource("{full path}/demo.hbm.xml")
.buildSessionFactory();
return sessionFactory;
} catch (Throwable ex) {
System.out.println("Failed" + ex);
}
}
/* To get the sessionfactory */
public static SessionFactory getSession() {
return session;
}
/* To close the sessionfactory */
public static void shutdown() {
getSession().close();
}
}
希望这会有所帮助:)