同じjdbcurlを使用して「create-drop」で構成された新しいSessionFactoryを作成するだけでなく、import.sqlスクリプトの内容をロードして実行するのはなぜですか?
@Test
public void test() {
HsqlSessionFactoryCreator creator = HsqlSessionFactoryCreator.getInstance();
try (SessionFactory sessionFactory1 = creator.create()) {
try (Session session = sessionFactory1.openSession()) {
Transaction transaction = session.beginTransaction();
try {
createEntity(...);
transaction.commit();
} catch (Throwable throwable) {
transaction.rollback();
}
}
try (Session session = sessionFactory1.openSession()) {
System.err.println("SessionFactory1 " + session.createCriteria(MyEntity.class).list());
}
try (Session session = sessionFactory1.openSession()) {
Transaction transaction = session.beginTransaction();
try {
createEntity(...);
transaction.commit();
} catch (Throwable throwable) {
transaction.rollback();
}
}
try (Session session = sessionFactory1.openSession()) {
System.err.println("SessionFactory1 " + session.createCriteria(MyEntity.class).list());
}
try (SessionFactory sessionFactory2 = creator.create()) {
try (Session session = sessionFactory1.openSession()) {
System.err.println("SessionFactory1 after creating SessionFactory2 " + session.createCriteria(MyEntity.class).list());
}
try (Session session = sessionFactory2.openSession()) {
System.err.println("SessionFactory2 " + session.createCriteria(MyEntity.class).list());
}
try (Session session = sessionFactory1.openSession()) {
Transaction transaction = session.beginTransaction();
try {
createEntity(...);
transaction.commit();
} catch (Throwable throwable) {
transaction.rollback();
}
}
try (Session session = sessionFactory1.openSession()) {
System.err.println("SessionFactory1 " + session.createCriteria(MyEntity.class).list());
}
try (Session session = sessionFactory2.openSession()) {
System.err.println("SessionFactory2 " + session.createCriteria(MyEntity.class).list());
}
}
}
}
私がテストを実行すると(エンティティについての知識を持ったのSessionFactoryを作成した)、私は次の出力
SessionFactory1 [MyEntity[ID 9c81b1fa-04f5-4572-a945-e16d13ffc187]]
SessionFactory1 [MyEntity[ID 550e7c5d-6c8c-40ea-8f4b-cfdbf2d92075], MyEntity[ID 9c81b1fa-04f5-4572-a945-e16d13ffc187]]
SessionFactory1 after creating SessionFactory2 []
SessionFactory2 []
SessionFactory1 [MyEntity[ID 3748127d-6872-4d9c-84fb-1d83b85c9fe0]]
SessionFactory2 [MyEntity[ID 3748127d-6872-4d9c-84fb-1d83b85c9fe0]]
これはこれまでのところ最も近い解決策のように思えますが、私はもう少し自動化されたものはありません。この質問にはもう数日かかります。 – bphilipnyc
それはあなたのために働いてうれしい、私はもっと簡単なものを見つけることができるかどうかを確認するためにもう少し周りを見ていきます。 –