Hibernate sessionfactory每次启动时删除我的数据库内容?
我使用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);
回答:
所有实体bieng在启动时删除,因为你已经设置休眠配置以同样的方式,
实际财产就是hbm2ddl有这些值验证|更新|创建|创建 - 删除
您可能已将其设置为创建 - 删除,这意味着在启动时删除并创建新的模式,从而产生效果。
你可能想改变的值来验证,刚刚符合该架构是完整的
参考链接:如果您还需要进一步的细节http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html
以上是 Hibernate sessionfactory每次启动时删除我的数据库内容? 的全部内容, 来源链接: utcz.com/qa/266350.html