use of org.hibernate.SessionFactory in project hibernate-orm by hibernate.
the class ConfigurationTest method testPrecedenceHbm.
@Test
public void testPrecedenceHbm() throws Exception {
Configuration cfg = new Configuration();
cfg.configure("org/hibernate/test/annotations/hibernate.cfg.xml");
cfg.setProperty(Environment.HBM2DDL_AUTO, "create-drop");
cfg.addAnnotatedClass(Boat.class);
SessionFactory sf = cfg.buildSessionFactory();
assertNotNull(sf);
Session s = sf.openSession();
s.getTransaction().begin();
Boat boat = new Boat();
boat.setSize(12);
boat.setWeight(34);
s.persist(boat);
s.getTransaction().commit();
s.clear();
Transaction tx = s.beginTransaction();
boat = (Boat) s.get(Boat.class, boat.getId());
assertTrue("Annotation has precedence", 34 != boat.getWeight());
s.delete(boat);
//s.getTransaction().commit();
tx.commit();
s.close();
sf.close();
}
use of org.hibernate.SessionFactory in project hibernate-orm by hibernate.
the class ServiceRegistryClosingCascadeTest method testSessionFactoryClosing.
@Test
public void testSessionFactoryClosing() {
BootstrapServiceRegistry bsr = new BootstrapServiceRegistryBuilder().build();
StandardServiceRegistry sr = new StandardServiceRegistryBuilder(bsr).build();
assertTrue(((BootstrapServiceRegistryImpl) bsr).isActive());
Configuration config = new Configuration();
SessionFactory sf = config.buildSessionFactory(sr);
sf.close();
assertFalse(((BootstrapServiceRegistryImpl) bsr).isActive());
}
use of org.hibernate.SessionFactory in project hibernate-orm by hibernate.
the class AccessMappingTest method testExplicitPropertyAccessAnnotationsOnField.
@Test
public void testExplicitPropertyAccessAnnotationsOnField() throws Exception {
Configuration cfg = new Configuration();
cfg.addAnnotatedClass(Course4.class);
cfg.addAnnotatedClass(Student.class);
SessionFactory sf = null;
try {
sf = cfg.buildSessionFactory(serviceRegistry);
fail("@Id and @OneToMany are not placed consistently in test entities. SessionFactory creation should fail.");
} catch (MappingException e) {
// success
} finally {
if (sf != null) {
sf.close();
}
}
}
use of org.hibernate.SessionFactory in project hibernate-orm by hibernate.
the class DuplicateTest method testDuplicateEntityName.
@Test
public void testDuplicateEntityName() throws Exception {
Configuration cfg = new Configuration();
cfg.setProperty(Environment.HBM2DDL_AUTO, "create-drop");
ServiceRegistry serviceRegistry = null;
SessionFactory sf = null;
try {
cfg.addAnnotatedClass(Flight.class);
cfg.addAnnotatedClass(org.hibernate.test.annotations.Flight.class);
cfg.addResource("org/hibernate/test/annotations/orm.xml");
cfg.addResource("org/hibernate/test/annotations/duplicatedgenerator/orm.xml");
serviceRegistry = ServiceRegistryBuilder.buildServiceRegistry(cfg.getProperties());
sf = cfg.buildSessionFactory(serviceRegistry);
Assert.fail("Should not be able to map the same entity name twice");
} catch (AnnotationException ae) {
//success
} finally {
if (sf != null) {
sf.close();
}
if (serviceRegistry != null) {
ServiceRegistryBuilder.destroy(serviceRegistry);
}
}
}
use of org.hibernate.SessionFactory in project hibernate-orm by hibernate.
the class EmbeddableIntegratorTest method testWithTypeContributor.
@Test
public void testWithTypeContributor() {
SessionFactory sf = new Configuration().addAnnotatedClass(Investor.class).registerTypeContributor(new InvestorTypeContributor()).setProperty("hibernate.hbm2ddl.auto", "create-drop").buildSessionFactory();
Session sess = sf.openSession();
try {
sess.getTransaction().begin();
Investor myInv = getInvestor();
myInv.setId(2L);
sess.save(myInv);
sess.flush();
sess.clear();
Investor inv = (Investor) sess.get(Investor.class, 2L);
assertEquals(new BigDecimal("100"), inv.getInvestments().get(0).getAmount().getAmount());
} catch (Exception e) {
sess.getTransaction().rollback();
throw e;
} finally {
sess.close();
sf.close();
}
}
Aggregations