【发布时间】:2012-05-03 07:06:01
【问题描述】:
我正在使用 Hibernate 将 Java 类保存到 derby 数据库。 当我运行我的代码时,我第一次运行我的类时一切都很好,我可以从我的数据库中创建并回调一个实例,即使我关闭了我的服务器 Tomcat,它仍然存在。
当我加载备份服务器时,我发现一旦我返回以下类,我的数据库表就会被擦除,该函数用于创建我用来创建会话的会话工厂,所以我没有多个工厂,它由一个ServletContextListener 以便在调用我的任何 Servlet 之前调用它,因此每次运行维护一个工厂。
有谁知道它为什么一直在擦我的数据库,不就是一个句柄吗
公共类 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);
【问题讨论】:
标签: java hibernate servlets derby