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

回到顶部