我使用Hibernate將Java類保存到德比數據庫。 當我運行我的代碼時,第一次運行我的類時,一切都很好,我可以創建並從我的數據庫回調實例,即使在關閉我的服務器Tomcat時它仍然存在。Hibernate sessionfactory每次啓動時刪除我的數據庫內容?
當我加載備份我的服務器時,我發現一旦我返回以下類,我的數據庫表會被擦除,該函數將創建一個sessionfactory,用於創建會話,所以我沒有多個工廠,一個ServletContextListener,以便在我的任何一個servevlet被調用之前調用它,因此每次運行維護一個Factory。
有誰知道爲什麼它一直抹我的數據庫,這不只是一個手柄
公共類CreateMysessionfactory { 私人SessionFactory的工廠;
public CreateMysessionfactory() {
AnnotationConfiguration config = new AnnotationConfiguration();
config.addAnnotatedClass(UPS.class);
config.configure();
factory = config.buildSessionFactory();
}
public SessionFactory getFactory() {
return factory;
}
下面是調用上述方法的ServletContextListener,它可能是有用的。
public void contextInitialized(ServletContextEvent event) {
// Create the database connection.
ServletContext ctx = event.getServletContext();
// Create the database:grab my hibernate object here
CreateMysessionfactory db = new CreateMysessionfactory();
ctx.setAttribute("db", db);
ctx.setAttribute("DbSessionFactory", db.getFactory());
ItemDataAccessObject dao = new ItemDataAccessObject(db.getFactory());
Item u = new Item();
//Item u =dao.getItem(0);
dao.updateItem(u);