manuální inicializace požadovaných Přechod do stavu hibernace databázových tabulek

hlasů
2

Budu se začal v režimu spánku a zatím to není příliš těžké. Ale já jsem zmatená o nemovitosti hbm2ddl.auto. Existuje způsob, jak ručně spustit bez ohledu na to však inicializovat databázové tabulky? Já jen chci, aby to poté, co jsem se, aby se mé změny databáze, nikoli pokaždé, když jsem běžet můj program.

edit: co při běhu? Existuje způsob, jak ve svém Java programu, který má programově znovu inicializovat databázové tabulky? org.hibernate.tool.hbm2ddl.SchemaUpdate vypadá možná jako pravé šelmy, ale nejsem si jistý, co to dělá přesně.

Položena 18/05/2009 v 23:02
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
2

Chtěl bych použít HBM2DDL k vytvoření databáze, pak využijí jakékoliv replikace / backup existuje v databázi uložit schéma databáze, a použít tyto skripty, aby znovu vytvořit databázi, kdykoliv budete potřebovat; spustit pouze HBM2DDL vygenerovat si databázi při své objektový model změní.

Odpovězeno 18/05/2009 v 23:05
zdroj uživatelem

hlasů
1

Použijte přezimují mravence úkoly: https://www.hibernate.org/381.html

Odpovězeno 18/05/2009 v 23:04
zdroj uživatelem

hlasů
0

ok, díky za všechny stopy! následující pracoval:

public class HibernateUtil {
...

  public static SessionFactory createSessionFactory(Properties p)
  {
    try {
        // Create the SessionFactory from hibernate.cfg.xml
        Configuration cfg = new AnnotationConfiguration().configure();
        if (p != null)
            cfg.addProperties(p);
        return cfg.buildSessionFactory();
    } catch (Throwable ex) {
        // Make sure you log the exception, as it might be swallowed
        System.err.println("Initial SessionFactory creation failed." + ex);
        throw new ExceptionInInitializerError(ex);
    }
  }
}

Potom v mém kódu aplikace:

private void init() {
    Properties p = new Properties();
    p.setProperty("hibernate.hbm2ddl.auto", "create");
    Session session = HibernateUtil.createSessionFactory(p)
        .getCurrentSession();
    session.beginTransaction();
    session.getTransaction().commit();
    session.getSessionFactory().close();
    System.out.println("should be initialized....");
}
Odpovězeno 19/05/2009 v 17:12
zdroj uživatelem

hlasů
0

S touto sadou vlastností můžete vygenerovat vytvořit / aktualizovat skripty pro databázi a jejich vyřízení. To je skvělý nástroj pro vytváření prototypů, ale po nějakém čase bych navrhoval stěhování do jiné aktualizace strategie DB.

Odpovězeno 18/05/2009 v 23:07
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more