org.hibernate.dialect.MySQLDialect Java Examples

The following examples show how to use org.hibernate.dialect.MySQLDialect. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: HibernateUtil.java    From FrameworkBenchmarks with BSD 3-Clause "New" or "Revised" License 6 votes vote down vote up
private static SessionFactory createSessionFactory() {
    try {
        Configuration configuration = configuration();
        configuration.setProperty(AvailableSettings.DIALECT, MySQLDialect.class.getName());
        configuration.setProperty(AvailableSettings.USE_QUERY_CACHE, "false");
        configuration.setProperty(AvailableSettings.SHOW_SQL, "false");
        configuration.setProperty(AvailableSettings.CURRENT_SESSION_CONTEXT_CLASS, "thread");
        configuration.setProperty("hibernate.hikari.maximumPoolSize", String.valueOf(Runtime.getRuntime().availableProcessors() * 2));
        configuration.addAnnotatedClass(World.class);
        configuration.addAnnotatedClass(Fortune.class);
        StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
        return configuration.buildSessionFactory(serviceRegistryBuilder.build());
    } catch (RuntimeException ex) {
        LOGGER.error("Failed to create session factory");
        throw ex;
    }
}
 
Example #2
Source File: HibernateJpaVendorAdapter.java    From spring4-understanding with Apache License 2.0 6 votes vote down vote up
/**
 * Determine the Hibernate database dialect class for the given target database.
 * @param database the target database
 * @return the Hibernate database dialect class, or {@code null} if none found
 */
@SuppressWarnings("deprecation")
protected Class<?> determineDatabaseDialectClass(Database database) {
	switch (database) {
		case DB2: return DB2Dialect.class;
		case DERBY: return DerbyDialect.class;  // DerbyDialect deprecated in 4.x
		case H2: return H2Dialect.class;
		case HSQL: return HSQLDialect.class;
		case INFORMIX: return InformixDialect.class;
		case MYSQL: return MySQLDialect.class;
		case ORACLE: return Oracle9iDialect.class;
		case POSTGRESQL: return PostgreSQLDialect.class;  // PostgreSQLDialect deprecated in 4.x
		case SQL_SERVER: return SQLServerDialect.class;
		case SYBASE: return org.hibernate.dialect.SybaseDialect.class;  // SybaseDialect deprecated in 3.6 but not 4.x
		default: return null;
	}
}
 
Example #3
Source File: HQLTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 6 votes vote down vote up
public void testExpressionWithParamInFunction() {
	assertTranslation("from Animal a where abs(a.bodyWeight-:param) < 2.0");
	assertTranslation("from Animal a where abs(:param - a.bodyWeight) < 2.0");
	assertTranslation("from Animal where abs(:x - :y) < 2.0");
	assertTranslation("from Animal where lower(upper(:foo)) like 'f%'");
	if ( ! ( getDialect() instanceof SybaseDialect ) ) {
		// SybaseDialect maps the length function -> len; classic translator does not consider that *when nested*
		assertTranslation("from Animal a where abs(abs(a.bodyWeight - 1.0 + :param) * abs(length('ffobar')-3)) = 3.0");
	}
	if ( !( getDialect() instanceof MySQLDialect || getDialect() instanceof SybaseDialect ) ) {
		assertTranslation("from Animal where lower(upper('foo') || upper(:bar)) like 'f%'");
	}
	if ( getDialect() instanceof PostgreSQLDialect ) {
		return;
	}
	assertTranslation("from Animal where abs(cast(1 as float) - cast(:param as float)) = 1.0");
}
 
Example #4
Source File: ASTParserLoadingTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 6 votes vote down vote up
/**
 * Copied from {@link HQLTest#testExpressionWithParamInFunction}
 */
public void testExpressionWithParamInFunction() {
	Session s = openSession();
	s.beginTransaction();
	s.createQuery( "from Animal a where abs(a.bodyWeight-:param) < 2.0" ).setLong( "param", 1 ).list();
	s.createQuery( "from Animal a where abs(:param - a.bodyWeight) < 2.0" ).setLong( "param", 1 ).list();
	if ( ! ( getDialect() instanceof HSQLDialect ) ) {
		// HSQLDB does not like the abs(? - ?) syntax...
		s.createQuery( "from Animal where abs(:x - :y) < 2.0" ).setLong( "x", 1 ).setLong( "y", 1 ).list();
	}
	s.createQuery( "from Animal where lower(upper(:foo)) like 'f%'" ).setString( "foo", "foo" ).list();
	s.createQuery( "from Animal a where abs(abs(a.bodyWeight - 1.0 + :param) * abs(length('ffobar')-3)) = 3.0" ).setLong( "param", 1 ).list();
	s.createQuery( "from Animal where lower(upper('foo') || upper(:bar)) like 'f%'" ).setString( "bar", "xyz" ).list();
	if ( ! ( getDialect() instanceof PostgreSQLDialect || getDialect() instanceof MySQLDialect ) ) {
		s.createQuery( "from Animal where abs(cast(1 as float) - cast(:param as float)) = 1.0" ).setLong( "param", 1 ).list();
	}
	s.getTransaction().commit();
	s.close();
}
 
Example #5
Source File: BulkManipulationTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 6 votes vote down vote up
public void testUpdateOnMammal() {
	TestData data = new TestData();
	data.prepare();

	Session s = openSession();
	Transaction t = s.beginTransaction();

	int count = s.createQuery( "update Mammal set description = description" ).executeUpdate();
	assertEquals( "incorrect update count against 'middle' of joined-subclass hierarchy", 2, count );

	count = s.createQuery( "update Mammal set bodyWeight = 25" ).executeUpdate();
	assertEquals( "incorrect update count against 'middle' of joined-subclass hierarchy", 2, count );

	if ( ! ( getDialect() instanceof MySQLDialect ) ) {
		// MySQL does not support (even un-correlated) subqueries against the update-mutating table
		count = s.createQuery( "update Mammal set bodyWeight = ( select max(bodyWeight) from Animal )" ).executeUpdate();
		assertEquals( "incorrect update count against 'middle' of joined-subclass hierarchy", 2, count );
	}

	t.commit();
	s.close();

	data.cleanup();
}
 
Example #6
Source File: SQLLoaderTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 6 votes vote down vote up
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();
}
 
Example #7
Source File: SQLLoaderTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 6 votes vote down vote up
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)
}
 
Example #8
Source File: MysqlDialectResolver.java    From aerogear-unifiedpush-server with Apache License 2.0 5 votes vote down vote up
@Override
public Dialect resolveDialect(DialectResolutionInfo dialectResolutionInfo) {
    if ("MySQL".equals(dialectResolutionInfo.getDatabaseName())) {
        return dialectResolutionInfo.getDatabaseMajorVersion() >= 5 ? new Mysql5BitBooleanDialect() : new MySQLDialect();
    }
    return null;
}
 
Example #9
Source File: HQLTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 5 votes vote down vote up
public void testConcatenation() {
	if ( getDialect() instanceof MySQLDialect || getDialect() instanceof SybaseDialect ) {
		// MySQL uses concat(x, y, z)
		// SQL Server replaces '||' with '+'
		//
		// this is syntax checked in {@link ASTParserLoadingTest#testConcatenation} 
		return;
	}
	assertTranslation("from Human h where h.nickName = '1' || 'ov' || 'tha' || 'few'");
}
 
Example #10
Source File: ASTParserLoadingTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 5 votes vote down vote up
public void testCast() {
	if ( ( getDialect() instanceof MySQLDialect ) || ( getDialect() instanceof DB2Dialect ) ) {
		return;
	}
	Session session = openSession();
	Transaction txn = session.beginTransaction();
	session.createQuery("from Human h where h.nickName like 'G%'").list();
	session.createQuery("from Animal a where cast(a.bodyWeight as string) like '1.%'").list();
	session.createQuery("from Animal a where cast(a.bodyWeight as integer) = 1").list();
	txn.commit();
	session.close();
}
 
Example #11
Source File: BulkManipulationTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 5 votes vote down vote up
public void testUpdateOnAnimal() {
	TestData data = new TestData();
	data.prepare();

	Session s = openSession();
	Transaction t = s.beginTransaction();
	int count = s.createQuery( "update Animal set description = description where description = :desc" )
			.setString( "desc", data.frog.getDescription() )
			.executeUpdate();
	assertEquals( "Incorrect entity-updated count", 1, count );

	count = s.createQuery( "update Animal set description = :newDesc where description = :desc" )
			.setString( "desc", data.polliwog.getDescription() )
			.setString( "newDesc", "Tadpole" )
			.executeUpdate();
	assertEquals( "Incorrect entity-updated count", 1, count );

	Animal tadpole = ( Animal ) s.load( Animal.class, data.polliwog.getId() );
	assertEquals( "Update did not take effect", "Tadpole", tadpole.getDescription() );

	count = s.createQuery( "update Animal set bodyWeight = bodyWeight + :w1 + :w2" )
			.setDouble( "w1", 1 )
			.setDouble( "w2", 2 )
			.executeUpdate();
	assertEquals( "incorrect count on 'complex' update assignment", count, 6 );

	if ( ! ( getDialect() instanceof MySQLDialect ) ) {
		// MySQL does not support (even un-correlated) subqueries against the update-mutating table
		s.createQuery( "update Animal set bodyWeight = ( select max(bodyWeight) from Animal )" )
				.executeUpdate();
	}

	t.commit();
	s.close();

	data.cleanup();
}
 
Example #12
Source File: BulkManipulationTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 5 votes vote down vote up
public void testUpdateOnManyToOne() {
	Session s = openSession();
	Transaction t = s.beginTransaction();

	s.createQuery( "update Animal a set a.mother = null where a.id = 2" ).executeUpdate();
	if ( ! ( getDialect() instanceof MySQLDialect ) ) {
		// MySQL does not support (even un-correlated) subqueries against the update-mutating table
		s.createQuery( "update Animal a set a.mother = (from Animal where id = 1) where a.id = 2" ).executeUpdate();
	}

	t.commit();
	s.close();
}
 
Example #13
Source File: FumTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 5 votes vote down vote up
public void testCompositeKeyPathExpressions() throws Exception {
	Session s = openSession();
	s.find("select fum1.fo from Fum fum1 where fum1.fo.fum is not null");
	s.find("from Fum fum1 where fum1.fo.fum is not null order by fum1.fo.fum");
	if ( !(getDialect() instanceof MySQLDialect) && !(getDialect() instanceof HSQLDialect) && !(getDialect() instanceof MckoiDialect) && !(getDialect() instanceof PointbaseDialect) ) {
		s.find("from Fum fum1 where exists elements(fum1.friends)");
		if(!(getDialect() instanceof TimesTenDialect)) { // can't execute because TimesTen can't do subqueries combined with aggreations
			s.find("from Fum fum1 where size(fum1.friends) = 0");
		}
	}
	s.find("select elements(fum1.friends) from Fum fum1");
	s.find("from Fum fum1, fr in elements( fum1.friends )");
	s.connection().commit();
	s.close();
}
 
Example #14
Source File: SQLLoaderTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 5 votes vote down vote up
public void testPropertyResultSQL() throws HibernateException, SQLException {
	
	if ( getDialect() instanceof MySQLDialect ) return;
		
	Session s = openSession();
	s.delete("from Assignable");
	s.delete("from Category");

	Category c = new Category();
	c.setName("NAME");
	Assignable assn = new Assignable();
	assn.setId("i.d.");
	List l = new ArrayList();
	l.add(c);
	assn.setCategories(l);
	c.setAssignable(assn);
	s.save(assn);
	s.flush();
	s.connection().commit();
	s.close();

	s = openSession();

	Query query = s.getNamedQuery("nonaliasedsql");
	assertNotNull(query);
	List list = query.list();
       assertNotNull(list);
	
	assertTrue(list.get(0) instanceof Category);
	
	s.connection().commit();
	s.close();

}
 
Example #15
Source File: MasterDetailTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 5 votes vote down vote up
public void testCollectionQuery() throws Exception {
	Session s = openSession();
	Transaction t = s.beginTransaction();
	if ( !(getDialect() instanceof MySQLDialect) && !(getDialect() instanceof SAPDBDialect) && !(getDialect() instanceof MckoiDialect) ) {
		s.iterate("FROM Master m WHERE NOT EXISTS ( FROM m.details d WHERE NOT d.i=5 )");
		s.iterate("FROM Master m WHERE NOT 5 IN ( SELECT d.i FROM m.details AS d )");
	}
	s.iterate("SELECT m FROM Master m JOIN m.details d WHERE d.i=5");
	s.find("SELECT m FROM Master m JOIN m.details d WHERE d.i=5");
	s.find("SELECT m.id FROM Master AS m JOIN m.details AS d WHERE d.i=5");
	t.commit();
	s.close();
}
 
Example #16
Source File: FooBarTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 5 votes vote down vote up
public void testAutoFlush() throws Exception {
	Session s = openSession();
	Transaction txn = s.beginTransaction();
	FooProxy foo = new Foo();
	s.save(foo);
	assertTrue( "autoflush create", s.find("from Foo foo").size()==1 );
	foo.setChar( new Character('X') );
	assertTrue( "autoflush update", s.find("from Foo foo where foo.char='X'").size()==1 );
	txn.commit();
	s.close();

	s = openSession();
	txn = s.beginTransaction();
	foo = (FooProxy) s.load( Foo.class, foo.getKey() );
	//s.update( new Foo(), foo.getKey() );
	//assertTrue( s.find("from Foo foo where not foo.char='X'").size()==1, "autoflush update" );
	if ( !(getDialect() instanceof MySQLDialect) && !(getDialect() instanceof HSQLDialect) && !(getDialect() instanceof PointbaseDialect) )  {
		foo.setBytes( "osama".getBytes() );
		assertTrue( "autoflush collection update", s.find("from Foo foo where 111 in elements(foo.bytes)").size()==1 );
		foo.getBytes()[0] = 69;
		assertTrue( "autoflush collection update", s.find("from Foo foo where 69 in elements(foo.bytes)").size()==1 );
	}
	s.delete(foo);
	assertTrue( "autoflush delete", s.find("from Foo foo").size()==0 );
	txn.commit();
	s.close();
}
 
Example #17
Source File: NotExpression.java    From cacheonix-core with GNU Lesser General Public License v2.1 5 votes vote down vote up
public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
throws HibernateException {
	if ( criteriaQuery.getFactory().getDialect() instanceof MySQLDialect ) {
		return "not (" + criterion.toSqlString(criteria, criteriaQuery) + ')';
	}
	else {
		return "not " + criterion.toSqlString(criteria, criteriaQuery);
	}
}
 
Example #18
Source File: EngineDecorator.java    From jpa2ddl with Apache License 2.0 5 votes vote down vote up
public static EngineDecorator getEngineDecorator(String dialect) throws ClassNotFoundException {
	Class<?> dialectClass = Class.forName(dialect);
	if (MySQLDialect.class.isAssignableFrom(dialectClass)) {
		return new MySQLDecorator();
	} else if (PostgreSQL81Dialect.class.isAssignableFrom(dialectClass)) {
		return new PostgreSQLDecorator();
	} else if (Oracle8iDialect.class.isAssignableFrom(dialectClass)) {
		return new OracleDecorator();
	} else if (SQLServerDialect.class.isAssignableFrom(dialectClass)) {
		return new SQLServerDecorator();
	}
	return new NoOpDecorator();

}
 
Example #19
Source File: SQLLoaderTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 4 votes vote down vote up
public void testFindBySQLAssociatedObjects() throws HibernateException, SQLException {
	Session s = openSession();
	s.delete("from Assignable");
	s.delete("from Category");

	Category c = new Category();
	c.setName("NAME");
	Assignable assn = new Assignable();
	assn.setId("i.d.");
	List l = new ArrayList();
	l.add(c);
	assn.setCategories(l);
	c.setAssignable(assn);
	s.save(assn);
	s.flush();
	s.connection().commit();
	s.close();

	s = openSession();
	List list = s.createSQLQuery("select {category.*} from category {category}", "category", Category.class).list();
	list.get(0);
	s.connection().commit();
	s.close();
	
	if ( getDialect() instanceof MySQLDialect ) return;
	if ( getDialect() instanceof OracleDialect ) return; // todo : this fails on Oracle8 also

	s = openSession();

	Query query = s.getNamedQuery("namedsql");
	assertNotNull(query);
	list = query.list();
       assertNotNull(list);
	
	Object[] values = (Object[]) list.get(0);
	assertNotNull(values[0]);
	assertNotNull(values[1]);
	assertTrue("wrong type: " + values[0].getClass(), values[0] instanceof Category);
	assertTrue("wrong type: " + values[1].getClass(), values[1] instanceof Assignable);
	
	s.connection().commit();
	s.close();

}
 
Example #20
Source File: CustomSQLTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 4 votes vote down vote up
public void testCRUD() throws HibernateException, SQLException {

		if ( getDialect() instanceof HSQLDialect ) return;
		if ( getDialect() instanceof MySQLDialect ) return;

		Person p = new Person();

		p.setName("Max");
		p.setLastName("Andersen");
		p.setNationalID("110974XYZ�");
		p.setAddress("P. P. Street 8");

		Session s = openSession();

		s.save(p);
		s.flush();

		s.connection().commit();
		s.close();

		getSessions().evict(Person.class);
		s = openSession();

		Person p2 = (Person) s.get(Person.class, p.getId());
		assertNotSame(p, p2);
		assertEquals(p2.getId(),p.getId());
		assertEquals(p2.getLastName(),p.getLastName());
		s.flush();

		List list = s.find("select p from Party as p");
		assertTrue(list.size() == 1);

		s.connection().commit();
		s.close();

		s = openSession();

		list = s.find("select p from Person as p where p.address = 'L�rkev�nget 1'");
		assertTrue(list.size() == 0);
		p.setAddress("L�rkev�nget 1");
		s.update(p);
		list = s.find("select p from Person as p where p.address = 'L�rkev�nget 1'");
		assertTrue(list.size() == 1);
		list = s.find("select p from Party as p where p.address = 'P. P. Street 8'");
		assertTrue(list.size() == 0);

		s.delete(p);
		list = s.find("select p from Person as p");
		assertTrue(list.size() == 0);

		s.connection().commit();
		s.close();


	}
 
Example #21
Source File: OnDeleteTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 4 votes vote down vote up
public void testJoinedSubclass() {
	if ( ! supportsCircularCascadeDelete() ) {
		return;
	}

	Statistics statistics = getSessions().getStatistics();
	statistics.clear();
	
	Session s = openSession();
	Transaction t = s.beginTransaction();
	
	Salesperson mark = new Salesperson();
	mark.setName("Mark");
	mark.setTitle("internal sales");
	mark.setSex('M');
	mark.setAddress("buckhead");
	mark.setZip("30305");
	mark.setCountry("USA");
	
	Person joe = new Person();
	joe.setName("Joe");
	joe.setAddress("San Francisco");
	joe.setZip("XXXXX");
	joe.setCountry("USA");
	joe.setSex('M');
	joe.setSalesperson(mark);
	mark.getCustomers().add(joe);
			
	s.save(mark);
	
	t.commit();
	
	assertEquals( statistics.getEntityInsertCount(), 2 );
	assertEquals( statistics.getPrepareStatementCount(), 5 );
	
	statistics.clear();
	
	t = s.beginTransaction();
	s.delete(mark);
	t.commit();

	assertEquals( statistics.getEntityDeleteCount(), 2 );
	if ( !(getDialect() instanceof MySQLDialect) || (getDialect() instanceof MySQLInnoDBDialect) ) {
		assertEquals( statistics.getPrepareStatementCount(), 1 );
	}
	
	t = s.beginTransaction();
	List names = s.createQuery("select name from Person").list();
	assertTrue( names.isEmpty() );
	t.commit();

	s.close();
}
 
Example #22
Source File: MySQLCustomSQLTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 4 votes vote down vote up
public boolean appliesTo(Dialect dialect) {
	return ( dialect instanceof MySQLDialect );
}
 
Example #23
Source File: MasterDetailTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 4 votes vote down vote up
public void testCachedCollectionRefresh() throws Exception {
	Session s = openSession();
	Category c = new Category();
	List list = new ArrayList();
	c.setSubcategories(list);
	list.add( new Category() );
	c.setName("root");
	Serializable id = s.save(c);
	s.flush();
	s.connection().commit();
	s.close();

	s = openSession();
	c = (Category) s.load(Category.class, id);
	c.getSubcategories().size(); //force load and cache
	s.connection().commit();
	s.close();
	
	s = openSession();
	if ( (getDialect() instanceof MySQLDialect) ) s.connection().setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
	c = (Category) s.load(Category.class, id);
	c.getSubcategories().size(); //force load

	Session ss = openSession();
	Category c2 = (Category) ss.load(Category.class, id);
	ss.delete( c2.getSubcategories().get(0) );
	c2.getSubcategories().clear();
	ss.flush();
	ss.connection().commit();
	ss.close();

	s.refresh(c);
	assertTrue( c.getSubcategories().size()==0 );

	ss = openSession();
	c2 = (Category) ss.load(Category.class, id);
	c2.getSubcategories().add( new Category() );
	c2.getSubcategories().add( new Category() );
	ss.flush();
	ss.connection().commit();
	ss.close();

	s.refresh(c);
	assertEquals( 2, c.getSubcategories().size() );

	s.flush();
	s.connection().commit();
	s.close();

	s = openSession();
	c = (Category) s.load(Category.class, id);
	assertEquals( 2, c.getSubcategories().size() );
	s.delete(c);
	s.flush();
	s.connection().commit();
	s.close();
}
 
Example #24
Source File: FooBarTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 4 votes vote down vote up
public void testAutoFlushCollections() throws Exception {
	Session s = openSession();
	Transaction tx = s.beginTransaction();
	Baz baz = new Baz();
	baz.setDefaults();
	s.save(baz);
	tx.commit();
	s.close();

	s = openSession();
	tx = s.beginTransaction();
	baz = (Baz) s.load(Baz.class, baz.getCode());
	baz.getStringArray()[0] = "bark";
	Iterator i = s.iterate("select elements(baz.stringArray) from Baz baz");
	boolean found = false;
	while ( i.hasNext() ) {
		if ( "bark".equals( i.next() ) ) found = true;
	}
	assertTrue(found);
	baz.setStringArray(null);
	i = s.iterate("select distinct elements(baz.stringArray) from Baz baz");
	assertTrue( !i.hasNext() );
	baz.setStringArray( new String[] { "foo", "bar" } );
	i = s.iterate("select elements(baz.stringArray) from Baz baz");
	assertTrue( i.hasNext() );

	Foo foo = new Foo();
	s.save(foo);
	s.flush();
	baz.setFooArray( new Foo[] {foo} );

	i = s.iterate("select foo from Baz baz join baz.fooArray foo");
	found = false;
	while ( i.hasNext() ) {
		if ( foo==i.next() ) found = true;
	}
	assertTrue(found);

	baz.getFooArray()[0] = null;
	i = s.iterate("select foo from Baz baz join baz.fooArray foo");
	assertTrue( !i.hasNext() );
	baz.getFooArray()[0] = foo;
	i = s.iterate("select elements(baz.fooArray) from Baz baz");
	assertTrue( i.hasNext() );

	if ( !(getDialect() instanceof MySQLDialect) && !(getDialect() instanceof HSQLDialect) && !(getDialect() instanceof InterbaseDialect) && !(getDialect() instanceof PointbaseDialect) && !(getDialect() instanceof SAPDBDialect) )  {
		baz.getFooArray()[0] = null;
		i = s.iterate(
			"from Baz baz where ? in elements(baz.fooArray)",
			foo, Hibernate.entity(Foo.class)
		);
		assertTrue( !i.hasNext() );
		baz.getFooArray()[0] = foo;
		i = s.iterate(
			"select foo from Foo foo where foo in "
			+ "(select elt from Baz baz join baz.fooArray elt)"
		);
		assertTrue( i.hasNext() );
	}
	s.delete(foo);
	s.delete(baz);
	tx.commit();
	s.close();

}
 
Example #25
Source File: FooBarTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 4 votes vote down vote up
public void testQueryCollectionOfValues() throws Exception {
	Session s = openSession();
	Baz baz = new Baz();
	baz.setDefaults();
	s.save(baz);
	Glarch g = new Glarch();
	Serializable gid = s.save(g);

	if ( !(getDialect() instanceof MySQLDialect) && !(getDialect() instanceof HSQLDialect) /*&& !(dialect instanceof MckoiDialect)*/ && !(getDialect() instanceof SAPDBDialect) && !(getDialect() instanceof PointbaseDialect) && !(getDialect() instanceof TimesTenDialect) ) {
		s.filter( baz.getFooArray(), "where size(this.bytes) > 0");
		s.filter( baz.getFooArray(), "where 0 in elements(this.bytes)");
	}
	s.flush();
	s.connection().commit();
	s.close();

	s = openSession();
	//s.find("from Baz baz where baz.fooSet.string = 'foo'");
	//s.find("from Baz baz where baz.fooArray.string = 'foo'");
	//s.find("from Baz baz where baz.fooSet.foo.string = 'foo'");
	//s.find("from Baz baz join baz.fooSet.foo foo where foo.string = 'foo'");
	s.find("from Baz baz join baz.fooSet foo join foo.foo.foo foo2 where foo2.string = 'foo'");
	s.find("from Baz baz join baz.fooArray foo join foo.foo.foo foo2 where foo2.string = 'foo'");
	s.find("from Baz baz join baz.stringDateMap date where index(date) = 'foo'");
	s.find("from Baz baz join baz.topGlarchez g where index(g) = 'A'");
	s.find("select index(g) from Baz baz join baz.topGlarchez g");

	assertTrue( s.find("from Baz baz left join baz.stringSet").size()==3 );
	baz = (Baz) s.find("from Baz baz join baz.stringSet str where str='foo'").get(0);
	assertTrue( !Hibernate.isInitialized( baz.getStringSet() ) );
	baz = (Baz) s.find("from Baz baz left join fetch baz.stringSet").get(0);
	assertTrue( Hibernate.isInitialized( baz.getStringSet() ) );
	assertTrue( s.find("from Baz baz join baz.stringSet string where string='foo'").size()==1 );
	assertTrue( s.find("from Baz baz inner join baz.components comp where comp.name='foo'").size()==1 );
	//List bss = s.find("select baz, ss from Baz baz inner join baz.stringSet ss");
	s.find("from Glarch g inner join g.fooComponents comp where comp.fee is not null");
	s.find("from Glarch g inner join g.fooComponents comp join comp.fee fee where fee.count > 0");
	s.find("from Glarch g inner join g.fooComponents comp where comp.fee.count is not null");

	s.delete(baz);
	//s.delete("from Glarch g");
	s.delete( s.get(Glarch.class, gid) );
	s.flush();

	s.connection().commit();
	s.close();

}
 
Example #26
Source File: HibernateUtil.java    From unitime with Apache License 2.0 4 votes vote down vote up
public static boolean isMySQL() {
	return MySQLDialect.class.isAssignableFrom(getDialect());
}
 
Example #27
Source File: RepositoryIOTest.java    From MogwaiERDesignerNG with GNU General Public License v3.0 4 votes vote down vote up
public void testLoadSaveRepository() throws Exception {

		Connection theConnection = createConnection();

		Class theHibernateDialect = MySQLDialect.class;

		String theModelResource = "/de/erdesignerng/test/io/repository/examplemodel.mxm";

		String theNewFile = RepositioryHelper.performRepositorySaveAndLoad(theModelResource, theHibernateDialect,
				theConnection);

		String theOriginalFile = IOUtils.toString(getClass().getResourceAsStream(theModelResource));

		System.out.println(theOriginalFile);
		System.out.println(theNewFile);
		assertTrue(compareStrings(theOriginalFile, theNewFile));
	}
 
Example #28
Source File: CustomSQLTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 3 votes vote down vote up
public void testInsert() throws HibernateException, SQLException {

		if ( getDialect() instanceof HSQLDialect ) return;
		if ( getDialect() instanceof MySQLDialect ) return;
		
		Role p = new Role();

		p.setName("Patient");

		Session s = openSession();

		s.save(p);
		s.flush();

		s.connection().commit();
		s.close();

		getSessions().evict(Role.class);
		s = openSession();

		Role p2 = (Role) s.get(Role.class, new Long(p.getId()));
		assertNotSame(p, p2);
		assertEquals(p2.getId(),p.getId());
		assertTrue(p2.getName().equalsIgnoreCase(p.getName()));
		s.delete(p2);
		s.flush();


		s.connection().commit();
		s.close();


	}
 
Example #29
Source File: CustomSQLTest.java    From cacheonix-core with GNU Lesser General Public License v2.1 2 votes vote down vote up
public void testCollectionCUD() throws HibernateException, SQLException {
	
	if ( getDialect() instanceof HSQLDialect ) return;
	if ( getDialect() instanceof MySQLDialect ) return;
	
	Role role = new Role();

	role.setName("Jim Flanders");

	Intervention iv = new Medication();
	iv.setDescription("JF medical intervention");

	role.getInterventions().add(iv);

	List sx = new ArrayList();
	sx.add("somewhere");
	sx.add("somehow");
	sx.add("whatever");
	role.setBunchOfStrings(sx);

	Session s = openSession();

	s.save(role);
	s.flush();
	s.connection().commit();
	s.close();

	s = openSession();

	Role r = (Role) s.get(Role.class,new Long(role.getId()));
	assertNotSame(role,r);

	assertEquals(1,r.getInterventions().size());

	assertEquals(3, r.getBunchOfStrings().size());

	r.getBunchOfStrings().set(1, "replacement");
	s.flush();
	s.connection().commit();
	s.close();

	s = openSession();

	r = (Role) s.get(Role.class,new Long(role.getId()));
	assertNotSame(role,r);

	assertEquals(r.getBunchOfStrings().get(1),"replacement");
	assertEquals(3, r.getBunchOfStrings().size());

	r.getBunchOfStrings().set(1, "replacement");

	r.getBunchOfStrings().remove(1);
	s.flush();

	r.getBunchOfStrings().clear();
	s.flush();

	s.connection().commit();
	s.close();

}