From: <hib...@li...> - 2006-03-16 13:56:47
|
Author: max...@jb... Date: 2006-03-16 08:56:41 -0500 (Thu, 16 Mar 2006) New Revision: 9635 Modified: trunk/Hibernate3/test/org/hibernate/test/criteria/CriteriaQueryTest.java Log: enable query caching for CriteriaCachaTest so the cache actually gets tested. Modified: trunk/Hibernate3/test/org/hibernate/test/criteria/CriteriaQueryTest.java =================================================================== --- trunk/Hibernate3/test/org/hibernate/test/criteria/CriteriaQueryTest.java 2006-03-16 13:55:44 UTC (rev 9634) +++ trunk/Hibernate3/test/org/hibernate/test/criteria/CriteriaQueryTest.java 2006-03-16 13:56:41 UTC (rev 9635) @@ -13,12 +13,22 @@ import org.hibernate.ScrollableResults; import org.hibernate.Session; import org.hibernate.Transaction; -import org.hibernate.criterion.*; -import org.hibernate.dialect.HSQLDialect; +import org.hibernate.cfg.Configuration; +import org.hibernate.cfg.Environment; +import org.hibernate.criterion.DetachedCriteria; +import org.hibernate.criterion.Expression; +import org.hibernate.criterion.MatchMode; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Projection; +import org.hibernate.criterion.Projections; +import org.hibernate.criterion.Property; +import org.hibernate.criterion.Restrictions; +import org.hibernate.criterion.Subqueries; import org.hibernate.test.TestCase; +import org.hibernate.test.hql.Animal; import org.hibernate.test.hql.Reptile; -import org.hibernate.test.hql.Animal; import org.hibernate.transform.AliasToBeanResultTransformer; +import org.hibernate.transform.Transformers; import org.hibernate.type.Type; import org.hibernate.util.SerializationHelper; @@ -162,112 +172,112 @@ session.close(); } - public void testProjectionCache() { - Session s = openSession(); - Transaction t = s.beginTransaction(); + public void testProjectionCache() { + Session s = openSession(); + Transaction t = s.beginTransaction(); + + Course course = new Course(); + course.setCourseCode("HIB"); + course.setDescription("Hibernate Training"); + s.save(course); + + Student gavin = new Student(); + gavin.setName("Gavin King"); + gavin.setStudentNumber(666); + s.save(gavin); + + Student xam = new Student(); + xam.setName("Max Rydahl Andersen"); + xam.setStudentNumber(101); + s.save(xam); + + Enrolment enrolment1 = new Enrolment(); + enrolment1.setCourse(course); + enrolment1.setCourseCode(course.getCourseCode()); + enrolment1.setSemester((short) 1); + enrolment1.setYear((short) 1999); + enrolment1.setStudent(xam); + enrolment1.setStudentNumber(xam.getStudentNumber()); + xam.getEnrolments().add(enrolment1); + s.save(enrolment1); + + Enrolment enrolment2 = new Enrolment(); + enrolment2.setCourse(course); + enrolment2.setCourseCode(course.getCourseCode()); + enrolment2.setSemester((short) 3); + enrolment2.setYear((short) 1998); + enrolment2.setStudent(gavin); + enrolment2.setStudentNumber(gavin.getStudentNumber()); + gavin.getEnrolments().add(enrolment2); + s.save(enrolment2); + + List list = s.createCriteria(Enrolment.class) + .createAlias("student", "s") + .createAlias("course", "c") + .add( Restrictions.isNotEmpty("s.enrolments") ) + .setProjection( Projections.projectionList() + .add( Projections.property("s.name") ) + .add( Projections.property("c.description") ) + ) + .setCacheable(true) + .list(); + + assertEquals( list.size(), 2 ); + assertEquals( ( (Object[]) list.get(0) ).length, 2 ); + assertEquals( ( (Object[]) list.get(1) ).length, 2 ); + + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + + s.createCriteria(Enrolment.class) + .createAlias("student", "s") + .createAlias("course", "c") + .add( Restrictions.isNotEmpty("s.enrolments") ) + .setProjection( Projections.projectionList() + .add( Projections.property("s.name") ) + .add( Projections.property("c.description") ) + ) + .setCacheable(true) + .list(); - Course course = new Course(); - course.setCourseCode("HIB"); - course.setDescription("Hibernate Training"); - s.save(course); - - Student gavin = new Student(); - gavin.setName("Gavin King"); - gavin.setStudentNumber(666); - s.save(gavin); - - Student xam = new Student(); - xam.setName("Max Rydahl Andersen"); - xam.setStudentNumber(101); - s.save(xam); - - Enrolment enrolment1 = new Enrolment(); - enrolment1.setCourse(course); - enrolment1.setCourseCode(course.getCourseCode()); - enrolment1.setSemester((short) 1); - enrolment1.setYear((short) 1999); - enrolment1.setStudent(xam); - enrolment1.setStudentNumber(xam.getStudentNumber()); - xam.getEnrolments().add(enrolment1); - s.save(enrolment1); - - Enrolment enrolment2 = new Enrolment(); - enrolment2.setCourse(course); - enrolment2.setCourseCode(course.getCourseCode()); - enrolment2.setSemester((short) 3); - enrolment2.setYear((short) 1998); - enrolment2.setStudent(gavin); - enrolment2.setStudentNumber(gavin.getStudentNumber()); - gavin.getEnrolments().add(enrolment2); - s.save(enrolment2); - - List list = s.createCriteria(Enrolment.class) - .createAlias("student", "s") - .createAlias("course", "c") - .add( Restrictions.isNotEmpty("s.enrolments") ) - .setProjection( Projections.projectionList() - .add( Projections.property("s.name") ) - .add( Projections.property("c.description") ) - ) - .setCacheable(true) - .list(); - - assertEquals( list.size(), 2 ); - assertEquals( ( (Object[]) list.get(0) ).length, 2 ); - assertEquals( ( (Object[]) list.get(1) ).length, 2 ); - - t.commit(); - s.close(); - - s = openSession(); - t = s.beginTransaction(); - - s.createCriteria(Enrolment.class) - .createAlias("student", "s") - .createAlias("course", "c") - .add( Restrictions.isNotEmpty("s.enrolments") ) - .setProjection( Projections.projectionList() - .add( Projections.property("s.name") ) - .add( Projections.property("c.description") ) - ) - .setCacheable(true) - .list(); + assertEquals( list.size(), 2 ); + assertEquals( ( (Object[]) list.get(0) ).length, 2 ); + assertEquals( ( (Object[]) list.get(1) ).length, 2 ); + + t.commit(); + s.close(); - assertEquals( list.size(), 2 ); - assertEquals( ( (Object[]) list.get(0) ).length, 2 ); - assertEquals( ( (Object[]) list.get(1) ).length, 2 ); + s = openSession(); + t = s.beginTransaction(); + + s.createCriteria(Enrolment.class) + .createAlias("student", "s") + .createAlias("course", "c") + .add( Restrictions.isNotEmpty("s.enrolments") ) + .setProjection( Projections.projectionList() + .add( Projections.property("s.name") ) + .add( Projections.property("c.description") ) + ) + .setCacheable(true) + .list(); + + assertEquals( list.size(), 2 ); + assertEquals( ( (Object[]) list.get(0) ).length, 2 ); + assertEquals( ( (Object[]) list.get(1) ).length, 2 ); + + s.delete(enrolment1); + s.delete(enrolment2); + s.delete(course); + s.delete(gavin); + s.delete(xam); - t.commit(); - s.close(); - - s = openSession(); - t = s.beginTransaction(); - - s.createCriteria(Enrolment.class) - .createAlias("student", "s") - .createAlias("course", "c") - .add( Restrictions.isNotEmpty("s.enrolments") ) - .setProjection( Projections.projectionList() - .add( Projections.property("s.name") ) - .add( Projections.property("c.description") ) - ) - .setCacheable(true) - .list(); - - assertEquals( list.size(), 2 ); - assertEquals( ( (Object[]) list.get(0) ).length, 2 ); - assertEquals( ( (Object[]) list.get(1) ).length, 2 ); - - s.delete(enrolment1); - s.delete(enrolment2); - s.delete(course); - s.delete(gavin); - s.delete(xam); + t.commit(); + s.close(); + } - t.commit(); - s.close(); -} - public void testProjections() { Session s = openSession(); Transaction t = s.beginTransaction(); @@ -369,7 +379,7 @@ .add( Projections.property("co.description"), "courseDescription" ) ) .addOrder( Order.desc("studentName") ) - .setResultTransformer( new AliasToBeanResultTransformer(StudentDTO.class) ) + .setResultTransformer( Transformers.aliasToBean(StudentDTO.class) ) .list(); assertEquals(2, resultWithAliasedBean.size()); @@ -551,7 +561,7 @@ .add( Property.forName("co.description").as("courseDescription") ) ) .addOrder( Order.desc("studentName") ) - .setResultTransformer( new AliasToBeanResultTransformer(StudentDTO.class) ) + .setResultTransformer( Transformers.aliasToBean(StudentDTO.class) ) .list(); assertEquals(2, resultWithAliasedBean.size()); @@ -742,5 +752,12 @@ return new TestSuite(CriteriaQueryTest.class); } + protected void configure(Configuration cfg) { + super.configure( cfg ); + cfg.setProperty( Environment.USE_QUERY_CACHE, "true" ); + cfg.setProperty( Environment.CACHE_REGION_PREFIX, "criteriaquerytest" ); + cfg.setProperty( Environment.USE_SECOND_LEVEL_CACHE, "true" ); + cfg.setProperty( Environment.GENERATE_STATISTICS, "true" ); + } } |