1
を作成:)Hibernateは、hbm2ddl.auto =アップデートでいくつかのテーブルを維持hbm2ddl.autoでいくつかのテーブルをリロード=
名前が休止状態5.2.2で、それが可能であれば私がお聞きしたいのですが示唆するようにいくつかのテーブルではhbm2ddl.auto = updateを使用し、他のテーブルではhbm2ddl.auto = createを使用します。または、コードを定義して、新しいテーブルを作成したいだけでなく、更新したいだけの時間を追加することもできますか?
私はそれが機能したいと思いますかHibernateConnectorの例:
public class HibernateConnector {
private static HibernateConnector me;
private Configuration cfg;
private SessionFactory sessionFactory;
private HibernateConnector(boolean db) throws HibernateException {
if (db) {
cfg = new Configuration();
cfg.addAnnotatedClass(A.class);
cfg.addAnnotatedClass(B.class);
cfg.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
cfg.setProperty("hibernate.connection.url", "jdbc:mysql:XXX");
cfg.setProperty("hibernate.connection.username", "XXX");
cfg.setProperty("hibernate.connection.password", "XYZ");
cfg.setProperty("hibernate.show_sql", "true");
cfg.setProperty("hibernate.hbm2ddl.auto", "create");
sessionFactory = cfg.buildSessionFactory();
} else {
cfg = new Configuration();
cfg.addAnnotatedClass(A.class);
cfg.addAnnotatedClass(B.class);
cfg.addAnnotatedClass(C.class);
cfg.addAnnotatedClass(D.class);
cfg.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
cfg.setProperty("hibernate.connection.url", "jdbc:mysql://XXX");
cfg.setProperty("hibernate.connection.username", "XYZ");
cfg.setProperty("hibernate.connection.password", "XXX");
cfg.setProperty("hibernate.show_sql", "true");
cfg.setProperty("hibernate.hbm2ddl.auto", "update");
sessionFactory = cfg.buildSessionFactory();
}
}
public static synchronized HibernateConnector getInstance() throws HibernateException {
if (me == null) {
me = new HibernateConnector(false);
}
return me;
}
public static synchronized HibernateConnector getDBInstance() throws HibernateException {
if (me == null) {
me = new HibernateConnector(true);
}
return me;
}
public Session getSession() throws HibernateException {
Session session = sessionFactory.openSession();
if (!session.isConnected()) {
this.reconnect();
}
return session;
}
private void reconnect() throws HibernateException {
this.sessionFactory = cfg.buildSessionFactory();
}
}
はありがとうと素敵な一日:)