use of org.hibernate.test.sql.hand.Employment in project hibernate-orm by hibernate.
the class NativeSQLQueriesTest method testAutoDetectAliasing.
@Test
@SuppressWarnings({ "UnusedDeclaration", "deprecation", "UnusedAssignment" })
public void testAutoDetectAliasing() {
Session s = openSession();
Transaction t = s.beginTransaction();
Organization ifa = new Organization("IFA");
Organization jboss = new Organization("JBoss");
Person gavin = new Person("Gavin");
Employment emp = new Employment(gavin, jboss, "AU");
Serializable orgId = s.save(jboss);
Serializable orgId2 = s.save(ifa);
s.save(gavin);
s.save(emp);
t.commit();
s.close();
s = openSession();
t = s.beginTransaction();
List list = s.createSQLQuery(getEmploymentSQL()).addEntity(Employment.class.getName()).list();
assertEquals(1, list.size());
Employment emp2 = (Employment) list.get(0);
assertEquals(emp2.getEmploymentId(), emp.getEmploymentId());
assertEquals(emp2.getStartDate().getDate(), emp.getStartDate().getDate());
assertEquals(emp2.getEndDate(), emp.getEndDate());
s.clear();
list = s.createSQLQuery(getEmploymentSQL()).addEntity(Employment.class.getName()).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
assertEquals(1, list.size());
Map m = (Map) list.get(0);
assertTrue(m.containsKey("Employment"));
assertEquals(1, m.size());
list = s.createSQLQuery(getEmploymentSQL()).list();
assertEquals(1, list.size());
Object[] o = (Object[]) list.get(0);
assertEquals(8, o.length);
list = s.createSQLQuery(getEmploymentSQL()).setResultTransformer(new UpperCasedAliasToEntityMapResultTransformer()).list();
assertEquals(1, list.size());
m = (Map) list.get(0);
assertTrue(m.containsKey("EMPID"));
assertTrue(m.containsKey("AMOUNT"));
assertTrue(m.containsKey("ENDDATE"));
assertEquals(8, m.size());
list = s.createSQLQuery(getEmploymentSQLMixedScalarEntity()).addScalar("employerid").addEntity(Employment.class).list();
assertEquals(1, list.size());
o = (Object[]) list.get(0);
assertEquals(2, o.length);
assertClassAssignability(Number.class, o[0].getClass());
assertClassAssignability(Employment.class, o[1].getClass());
Query queryWithCollection = s.getNamedQuery("organizationEmploymentsExplicitAliases");
queryWithCollection.setLong("id", jboss.getId());
list = queryWithCollection.list();
assertEquals(list.size(), 1);
s.clear();
list = s.createSQLQuery(getOrganizationJoinEmploymentSQL()).addEntity("org", Organization.class).addJoin("emp", "org.employments").list();
assertEquals(2, list.size());
s.clear();
list = s.createSQLQuery(getOrganizationFetchJoinEmploymentSQL()).addEntity("org", Organization.class).addJoin("emp", "org.employments").list();
assertEquals(2, list.size());
s.clear();
// TODO : why twice?
s.getNamedQuery("organizationreturnproperty").list();
list = s.getNamedQuery("organizationreturnproperty").list();
assertEquals(2, list.size());
s.clear();
list = s.getNamedQuery("organizationautodetect").list();
assertEquals(2, list.size());
t.commit();
s.close();
s = openSession();
t = s.beginTransaction();
s.delete(emp2);
s.delete(jboss);
s.delete(gavin);
s.delete(ifa);
t.commit();
s.close();
s = openSession();
t = s.beginTransaction();
Dimension dim = new Dimension(3, 30);
s.save(dim);
list = s.createSQLQuery("select d_len * d_width as surface, d_len * d_width * 10 as volume from Dimension").list();
s.delete(dim);
t.commit();
s.close();
s = openSession();
t = s.beginTransaction();
SpaceShip enterprise = new SpaceShip();
enterprise.setModel("USS");
enterprise.setName("Entreprise");
enterprise.setSpeed(50d);
Dimension d = new Dimension(45, 10);
enterprise.setDimensions(d);
s.save(enterprise);
Object[] result = (Object[]) s.getNamedQuery("spaceship").uniqueResult();
assertEquals("expecting 3 result values", 3, result.length);
enterprise = (SpaceShip) result[0];
assertTrue(50d == enterprise.getSpeed());
assertTrue(450d == extractDoubleValue(result[1]));
assertTrue(4500d == extractDoubleValue(result[2]));
s.delete(enterprise);
t.commit();
s.close();
}
use of org.hibernate.test.sql.hand.Employment in project hibernate-orm by hibernate.
the class CustomSQLTestSupport method testHandSQL.
@Test
public void testHandSQL() {
Session s = openSession();
Transaction t = s.beginTransaction();
Organization ifa = new Organization("IFA");
Organization jboss = new Organization("JBoss");
Person gavin = new Person("Gavin");
Employment emp = new Employment(gavin, jboss, "AU");
Serializable orgId = s.save(jboss);
s.save(ifa);
s.save(gavin);
s.save(emp);
t.commit();
t = s.beginTransaction();
Person christian = new Person("Christian");
s.save(christian);
Employment emp2 = new Employment(christian, jboss, "EU");
s.save(emp2);
t.commit();
s.close();
sessionFactory().getCache().evictEntityRegion(Organization.class);
sessionFactory().getCache().evictEntityRegion(Person.class);
sessionFactory().getCache().evictEntityRegion(Employment.class);
s = openSession();
t = s.beginTransaction();
jboss = (Organization) s.get(Organization.class, orgId);
assertEquals(jboss.getEmployments().size(), 2);
assertEquals(jboss.getName(), "JBOSS");
emp = (Employment) jboss.getEmployments().iterator().next();
gavin = emp.getEmployee();
assertEquals("GAVIN", gavin.getName());
assertEquals(LockMode.UPGRADE, s.getCurrentLockMode(gavin));
emp.setEndDate(new Date());
Employment emp3 = new Employment(gavin, jboss, "US");
s.save(emp3);
t.commit();
s.close();
s = openSession();
t = s.beginTransaction();
Iterator itr = s.getNamedQuery("allOrganizationsWithEmployees").list().iterator();
assertTrue(itr.hasNext());
Organization o = (Organization) itr.next();
assertEquals(o.getEmployments().size(), 3);
Iterator itr2 = o.getEmployments().iterator();
while (itr2.hasNext()) {
Employment e = (Employment) itr2.next();
s.delete(e);
}
itr2 = o.getEmployments().iterator();
while (itr2.hasNext()) {
Employment e = (Employment) itr2.next();
s.delete(e.getEmployee());
}
s.delete(o);
assertFalse(itr.hasNext());
s.delete(ifa);
t.commit();
s.close();
}
Aggregations