⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sqlloadertest.java

📁 hibernate 开源框架的代码 jar包希望大家能喜欢
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		session.flush();		int count = session.createQuery("from A").list().size();		session.close();		session = openSession();		Query query;		if ( getDialect() instanceof OracleDialect ) {			// Oracle8 does not support X/Open extension functions :)			query = session.createSQLQuery("select identifier_column as {a.id}, clazz_discriminata as {a.class}, count_ as {a.count}, name as {a.name} from TA where upper(name) like upper('max')", "a", A.class);		}		else if( getDialect() instanceof TimesTenDialect) {            // TimesTen does not permit general expressions (like UPPER) in the second part of a LIKE expression,            // so we execute a similar test             query = session.createSQLQuery("select identifier_column as {a.id}, clazz_discriminata as {a.class}, count_ as {a.count}, name as {a.name} from TA where {fn ucase(name)} like 'MAX'", "a", A.class);        } else {            query = session.createSQLQuery("select identifier_column as {a.id}, clazz_discriminata as {a.class}, count_ as {a.count}, name as {a.name} from TA where {fn ucase(name)} like {fn ucase('max')}", "a", A.class);        }		List list = query.list();		assertNotNull(list);		assertEquals(1, list.size());		session.connection().commit();		session.close();	}	public void testDoubleAliasing() throws HibernateException, SQLException {			Session session = openSession();		session.delete("from A");		A savedA = new A();		savedA.setName("Max");		session.save(savedA);		B savedB = new B();		session.save(savedB);		session.flush();		int count = session.createQuery("from A").list().size();		session.close();		session = openSession();		Query query = session.createSQLQuery("select a.identifier_column as {a1.id}, a.clazz_discriminata as {a1.class}, a.count_ as {a1.count}, a.name as {a1.name} " +											", b.identifier_column as {a2.id}, b.clazz_discriminata as {a2.class}, b.count_ as {a2.count}, b.name as {a2.name} " +											" from TA a, TA b" +											" where a.identifier_column = b.identifier_column", new String[] {"a1", "a2" }, new Class[] {A.class, A.class});		List list = query.list();		assertNotNull(list);		assertEquals(2, list.size());		session.connection().commit();		session.close();	}	// TODO: compositeid's - how ? (SingleSeveral.hbm.xml test)	public void testEmbeddedCompositeProperties() throws HibernateException, SQLException {	   Session session = openSession();	   Single s = new Single();	   s.setId("my id");	   s.setString("string 1");	   session.save(s);	   session.flush();	   session.connection().commit();	   session.clear();	   Query query = session.createSQLQuery("select {sing.*} from Single {sing}", "sing", Single.class);	   List list = query.list();	   assertTrue(list.size()==1);	   session.clear();	   query = session.createSQLQuery("select {sing.*} from Single {sing} where sing.id = ?", "sing", Single.class);	   query.setString(0, "my id");	   list = query.list();	   assertTrue(list.size()==1);	   session.clear();	   query = session.createSQLQuery("select s.id as {sing.id}, s.string_ as {sing.string}, s.prop as {sing.prop} from Single s where s.id = ?", "sing", Single.class);	   query.setString(0, "my id");	   list = query.list();	   assertTrue(list.size()==1);	   session.clear();	   query = session.createSQLQuery("select s.id as {sing.id}, s.string_ as {sing.string}, s.prop as {sing.prop} from Single s where s.id = ?", "sing", Single.class);	   query.setString(0, "my id");	   list = query.list();	   assertTrue(list.size()==1);	   session.connection().commit();	   session.close();	}	public void testReturnPropertyComponentRenameFailureExpected() throws HibernateException, SQLException {		// failure expected because this was a regression introduced previously which needs to get tracked down.		Session session = openSession();		Componentizable componentizable = setupComponentData(session);				Query namedQuery = session.getNamedQuery("queryComponentWithOtherColumn");		List list = namedQuery.list();				assertEquals(1, list.size());		assertEquals( "flakky comp", ( (Componentizable) list.get(0) ).getComponent().getName() );				session.clear();				session.delete(componentizable);		session.flush();				session.connection().commit();		session.close();	}		public void testComponentStar() throws HibernateException, SQLException {	    componentTest("select {comp.*} from Componentizable comp");	}		public void testComponentNoStar() throws HibernateException, SQLException {	    componentTest("select comp.id as {comp.id}, comp.nickName as {comp.nickName}, comp.name as {comp.component.name}, comp.subName as {comp.component.subComponent.subName}, comp.subName1 as {comp.component.subComponent.subName1} from Componentizable comp");	}		private void componentTest(String sql) throws SQLException {        Session session = openSession();	    	    Componentizable c = setupComponentData( session );        	    Query q = session.createSQLQuery(sql, "comp", Componentizable.class);	    List list = q.list();	    	    assertEquals(list.size(),1);	    	    Componentizable co = (Componentizable) list.get(0);	    	    assertEquals(c.getNickName(), co.getNickName());	    assertEquals(c.getComponent().getName(), co.getComponent().getName());	    assertEquals(c.getComponent().getSubComponent().getSubName(), co.getComponent().getSubComponent().getSubName());	    	    session.delete(co);	    session.flush();	    session.connection().commit();	    session.close();    }	private Componentizable setupComponentData(Session session) throws SQLException {		Componentizable c = new Componentizable();	    c.setNickName("Flacky");	    Component component = new Component();	    component.setName("flakky comp");	    SubComponent subComponent = new SubComponent();	    subComponent.setSubName("subway");        component.setSubComponent(subComponent);	            c.setComponent(component);                session.save(c);                session.flush();        session.connection().commit();                session.clear();		return c;	}    public void testFindSimpleBySQL() throws Exception {		if ( getDialect() instanceof MySQLDialect ) return;		Session session = openSession();		Category s = new Category();		s.setName(String.valueOf(nextLong++));		session.save(s);		session.flush();		Query query = session.createSQLQuery("select s.category_key_col as {category.id}, s.name as {category.name}, s.\"assign-able-id\" as {category.assignable} from {category} s", "category", Category.class);		List list = query.list();		assertNotNull(list);		assertTrue(list.size() > 0);		assertTrue(list.get(0) instanceof Category);		session.connection().commit();		session.close();		// How do we handle objects with composite id's ? (such as Single)	}	public void testFindBySQLSimpleByDiffSessions() throws Exception {		Session session = openSession();		Category s = new Category();		s.setName(String.valueOf(nextLong++));		session.save(s);		session.flush();		session.connection().commit();		session.close();		if ( getDialect() instanceof MySQLDialect ) return;		session = openSession();		Query query = session.createSQLQuery("select s.category_key_col as {category.id}, s.name as {category.name}, s.\"assign-able-id\" as {category.assignable} from {category} s", "category", Category.class);		List list = query.list();		assertNotNull(list);		assertTrue(list.size() > 0);		assertTrue(list.get(0) instanceof Category);		// How do we handle objects that does not have id property (such as Simple ?)		// How do we handle objects with composite id's ? (such as Single)		session.connection().commit();		session.close();	}	public void testFindBySQLDiscriminatedSameSession() throws Exception {		Session session = openSession();		session.delete("from A");		A savedA = new A();		session.save(savedA);		B savedB = new B();		session.save(savedB);		session.flush();		Query query = session.createSQLQuery("select identifier_column as {a.id}, clazz_discriminata as {a.class}, name as {a.name}, count_ as {a.count} from TA {a}", "a", A.class);		List list = query.list();		assertNotNull(list);		assertEquals(2, list.size());		A a1 = (A) list.get(0);		A a2 = (A) list.get(1);		assertTrue((a2 instanceof B) || (a1 instanceof B));		assertFalse(a1 instanceof B && a2 instanceof B);		if (a1 instanceof B) {			assertSame(a1, savedB);			assertSame(a2, savedA);		}		else {			assertSame(a2, savedB);			assertSame(a1, savedA);		}		session.clear();		List list2 = session.getNamedQuery("propertyResultDiscriminator").list();		assertEquals(2, list2.size());				session.connection().commit();		session.close();	}	public void testFindBySQLDiscriminatedDiffSession() throws Exception {		Session session = openSession();		session.delete("from A");		A savedA = new A();		session.save(savedA);		B savedB = new B();		session.save(savedB);		session.flush();		int count = session.createQuery("from A").list().size();		session.close();		session = openSession();		Query query = session.createSQLQuery("select identifier_column as {a.id}, clazz_discriminata as {a.class}, count_ as {a.count}, name as {a.name} from TA", "a", A.class);		List list = query.list();		assertNotNull(list);		assertEquals(count, list.size());		session.connection().commit();		session.close();	}    public void testCompositeIdId() throws HibernateException, SQLException {	    // issue HHH-21        Session s = openSession();        CompositeIdId id = new CompositeIdId();        id.setName("Max");        id.setSystem("c64");        id.setId("games");        s.save(id);        s.flush();        s.connection().commit();        s.close();        s = openSession();        // having a composite id with one property named id works since the map used by sqlloader to map names to properties handles it.        Query query = s.createSQLQuery("select system as {c.system}, id as {c.id}, name as {c.name}, foo as {c.composite.foo}, bar as {c.composite.bar} from CompositeIdId where system=? and id=?", "c", CompositeIdId.class);        query.setString(0, "c64");        query.setString(1, "games");        CompositeIdId id2 = (CompositeIdId) query.uniqueResult();        check(id, id2);        s.flush();        s.connection().commit();        s.close();        s = openSession();        CompositeIdId useForGet = new CompositeIdId();        useForGet.setSystem("c64");        useForGet.setId("games");        // this doesn't work since the verification does not take column span into respect!        CompositeIdId getted = (CompositeIdId) s.get(CompositeIdId.class, useForGet);        check(id,getted);        s.connection().commit();        s.close();    }    private void check(CompositeIdId id, CompositeIdId id2) {        assertEquals(id,id2);        assertEquals(id.getName(), id2.getName());        assertEquals(id.getId(), id2.getId());        assertEquals(id.getSystem(), id2.getSystem());    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -