Code example for Session

Methods: closedeletesaveupdatebeginTransactioncreateQuery, x 1

0
	} 
 
	@Test
	public void testDialectSQLFunctions() throws Exception {
		Session s = openSession();
		Transaction t = s.beginTransaction();
 
		Iterator iter = s.createQuery( "select max(s.count) from Simple s" ).iterate();
 
		if ( getDialect() instanceof MySQLDialect ) assertTrue( iter.hasNext() && iter.next()==null );
 
		Simple simple = new Simple( Long.valueOf(10) );
		simple.setName("Simple Dialect Function Test");
		simple.setAddress("Simple Address");
		simple.setPay( Float.valueOf(45.8f) );
		simple.setCount(2);
		s.save( simple );
 
		// Test to make sure allocating an specified object operates correctly. 
		assertTrue( 
				s.createQuery( "select new org.hibernate.test.legacy.S(s.count, s.address) from Simple s" ).list().size() == 1
		); 
 
		// Quick check the base dialect functions operate correctly 
		assertTrue( 
				s.createQuery( "select max(s.count) from Simple s" ).list().size() == 1
		); 
		assertTrue( 
				s.createQuery( "select count(*) from Simple s" ).list().size() == 1
		); 
 
		if ( getDialect() instanceof Oracle9iDialect ) {
			// Check Oracle Dialect mix of dialect functions - no args (no parenthesis and single arg functions 
			List rset = s.createQuery( "select s.name, sysdate(), trunc(s.pay), round(s.pay) from Simple s" ).list();
			assertNotNull("Name string should have been returned",(((Object[])rset.get(0))[0]));
			assertNotNull("Todays Date should have been returned",(((Object[])rset.get(0))[1]));
			assertEquals("trunc(45.8) result was incorrect ", Float.valueOf(45), ( (Object[]) rset.get(0) )[2] );
			assertEquals("round(45.8) result was incorrect ", Float.valueOf(46), ( (Object[]) rset.get(0) )[3] );
 
			simple.setPay(new Float(-45.8));
			s.update(simple);
 
			// Test type conversions while using nested functions (Float to Int). 
			rset = s.createQuery( "select abs(round(s.pay)) from Simple s" ).list();
			assertEquals("abs(round(-45.8)) result was incorrect ", Float.valueOf( 46 ), rset.get(0));
 
			// Test a larger depth 3 function example - Not a useful combo other than for testing 
			assertTrue( 
					s.createQuery( "select trunc(round(sysdate())) from Simple s" ).list().size() == 1
			); 
 
			// Test the oracle standard NVL funtion as a test of multi-param functions... 
			simple.setPay(null);
			s.update(simple);
			Integer value = (Integer) s.createQuery(
					"select MOD( NVL(s.pay, 5000), 2 ) from Simple as s where s.id = 10" 
			).list()
					.get(0);
			assertTrue( 0 == value.intValue() );
		} 
 
		if ( (getDialect() instanceof HSQLDialect) ) {
			// Test the hsql standard MOD funtion as a test of multi-param functions... 
			Integer value = (Integer) s.createQuery( "select MOD(s.count, 2) from Simple as s where s.id = 10" )
					.list()
					.get(0);
			assertTrue( 0 == value.intValue() );
		} 
 
		s.delete(simple);
		t.commit();
		s.close();
	} 
 
	@Test
	public void testSetProperties() throws Exception {
		Session s = openSession();