From: <hib...@li...> - 2006-06-21 21:12:18
|
Author: ste...@jb... Date: 2006-06-21 17:11:30 -0400 (Wed, 21 Jun 2006) New Revision: 10037 Added: trunk/Hibernate3/test/org/hibernate/test/sql/Dimension.java Modified: trunk/Hibernate3/test/org/hibernate/test/sql/General.hbm.xml trunk/Hibernate3/test/org/hibernate/test/sql/GeneralTest.java Log: mimic particular test from JPA testsuite Added: trunk/Hibernate3/test/org/hibernate/test/sql/Dimension.java =================================================================== --- trunk/Hibernate3/test/org/hibernate/test/sql/Dimension.java 2006-06-21 19:42:52 UTC (rev 10036) +++ trunk/Hibernate3/test/org/hibernate/test/sql/Dimension.java 2006-06-21 21:11:30 UTC (rev 10037) @@ -0,0 +1,29 @@ +package org.hibernate.test.sql; + +/** + * Used to mimic some tests from the JPA testsuite... + * + * @author Steve Ebersole + */ +public class Dimension { + private Long id; + private int length; + private int width; + + public Dimension(int length, int width) { + this.length = length; + this.width = width; + } + + public Long getId() { + return id; + } + + public int getLength() { + return length; + } + + public int getWidth() { + return width; + } +} Modified: trunk/Hibernate3/test/org/hibernate/test/sql/General.hbm.xml =================================================================== --- trunk/Hibernate3/test/org/hibernate/test/sql/General.hbm.xml 2006-06-21 19:42:52 UTC (rev 10036) +++ trunk/Hibernate3/test/org/hibernate/test/sql/General.hbm.xml 2006-06-21 21:11:30 UTC (rev 10037) @@ -77,7 +77,15 @@ <one-to-many class="Order"/> </set> </class> - + + <class name="Dimension"> + <id name="id" type="long"> + <generator class="increment"/> + </id> + <property name="length" column="d_len"/> + <property name="width" column="d_width"/> + </class> + <resultset name="org-emp-regionCode"> <return-scalar column="regionCode" type="string"/> <return alias="org" class="Organization"/> Modified: trunk/Hibernate3/test/org/hibernate/test/sql/GeneralTest.java =================================================================== --- trunk/Hibernate3/test/org/hibernate/test/sql/GeneralTest.java 2006-06-21 19:42:52 UTC (rev 10036) +++ trunk/Hibernate3/test/org/hibernate/test/sql/GeneralTest.java 2006-06-21 21:11:30 UTC (rev 10037) @@ -72,7 +72,7 @@ public void testFailOnNoAddEntityOrScalar() { // Note: this passes, but for the wrong reason. - // there is actually an exception thrown, but it is the database + // there is actually an exception thrown, but it is the database // throwing a sql exception because the SQL gets passed // "un-processed"... Session s = openSession(); @@ -89,7 +89,7 @@ s.close(); } } - + public void testSQLQueryInterface() { Session s = openSession(); Transaction t = s.beginTransaction(); @@ -116,13 +116,13 @@ .addJoin("pers", "emp.employee") .list(); assertEquals( l.size(), 1 ); - + t.commit(); s.close(); - + s = openSession(); t = s.beginTransaction(); - + l = s.createSQLQuery( "select {org.*}, {emp.*} " + "from ORGANIZATION org " + " left outer join EMPLOYMENT emp on org.ORGID = emp.EMPLOYER, ORGANIZATION org2" ) @@ -134,10 +134,10 @@ t.commit(); s.close(); - + s = openSession(); t = s.beginTransaction(); - + s.delete(emp); s.delete(gavin); s.delete(ifa); @@ -146,7 +146,7 @@ t.commit(); s.close(); } - + public void testResultSetMappingDefinition() { Session s = openSession(); Transaction t = s.beginTransaction(); @@ -178,7 +178,7 @@ t.commit(); s.close(); } - + public void testScalarValues() throws Exception { Session s = openSession(); Transaction t = s.beginTransaction(); @@ -254,7 +254,7 @@ t.commit(); s.close(); } - + public void testMappedAliasStrategy() { Session s = openSession(); Transaction t = s.beginTransaction(); @@ -292,8 +292,8 @@ Map m = (Map) res; assertEquals(2,m.size()); t.commit(); - s.close(); - + s.close(); + s = openSession(); t = s.beginTransaction(); sqlQuery = s.getNamedQuery("organizationreturnproperty"); @@ -308,7 +308,7 @@ assertEquals(2, m.size()); t.commit(); s.close(); - + s = openSession(); t = s.beginTransaction(); namedQuery = s.getNamedQuery("EmploymentAndPerson"); @@ -317,7 +317,7 @@ Object[] objs = (Object[]) list.get(0); assertEquals(2, objs.length); emp2 = (Employment) objs[0]; - gavin = (Person) objs[1]; + gavin = (Person) objs[1]; s.delete(emp2); s.delete(jboss); s.delete(gavin); @@ -325,7 +325,7 @@ t.commit(); s.close(); } - + /* test for native sql composite id joins which has never been implemented */ public void testCompositeIdJoinsFailureExpected() { Session s = openSession(); @@ -338,55 +338,55 @@ product.getProductId().setOrgid( "x" ); product.getProductId().setProductnumber( "1234" ); product.setName( "Hibernate 3" ); - + Order order = new Order(); order.setOrderId( new Order.OrderId() ); order.getOrderId().setOrdernumber( "1" ); order.getOrderId().setOrgid( "y" ); - + product.getOrders().add( order ); order.setProduct( product ); order.setPerson( person ); - + s.save( product ); s.save( order); s.save( person ); - + t.commit(); s.close(); - + s = openSession(); t = s.beginTransaction(); Product p = (Product) s.createQuery( "from Product p join fetch p.orders" ).list().get(0); assertTrue(Hibernate.isInitialized( p.getOrders())); t.commit(); s.close(); - + s = openSession(); t = s.beginTransaction(); - Object[] o = (Object[]) s.createSQLQuery( "select\r\n" + - " product.orgid as {product.id.orgid}," + - " product.productnumber as {product.id.productnumber}," + - " {prod_orders}.orgid as orgid3_1_,\r\n" + - " {prod_orders}.ordernumber as ordernum2_3_1_,\r\n" + + Object[] o = (Object[]) s.createSQLQuery( "select\r\n" + + " product.orgid as {product.id.orgid}," + + " product.productnumber as {product.id.productnumber}," + + " {prod_orders}.orgid as orgid3_1_,\r\n" + + " {prod_orders}.ordernumber as ordernum2_3_1_,\r\n" + " product.name as {product.name}," + - " {prod_orders.element.*}," + - /*" orders.PROD_NO as PROD4_3_1_,\r\n" + - " orders.person as person3_1_,\r\n" + - " orders.PROD_ORGID as PROD3_0__,\r\n" + - " orders.PROD_NO as PROD4_0__,\r\n" + - " orders.orgid as orgid0__,\r\n" + - " orders.ordernumber as ordernum2_0__ \r\n" +*/ - " from\r\n" + - " Product product \r\n" + - " inner join\r\n" + - " TBL_ORDER {prod_orders} \r\n" + - " on product.orgid={prod_orders}.PROD_ORGID \r\n" + + " {prod_orders.element.*}," + + /*" orders.PROD_NO as PROD4_3_1_,\r\n" + + " orders.person as person3_1_,\r\n" + + " orders.PROD_ORGID as PROD3_0__,\r\n" + + " orders.PROD_NO as PROD4_0__,\r\n" + + " orders.orgid as orgid0__,\r\n" + + " orders.ordernumber as ordernum2_0__ \r\n" +*/ + " from\r\n" + + " Product product \r\n" + + " inner join\r\n" + + " TBL_ORDER {prod_orders} \r\n" + + " on product.orgid={prod_orders}.PROD_ORGID \r\n" + " and product.productnumber={prod_orders}.PROD_NO" ) .addEntity( "product", Product.class ) .addJoin( "prod_orders", "product.orders" ) .list().get(0); - + p = (Product) o[0]; assertTrue(Hibernate.isInitialized( p.getOrders() )); assertNotNull(p.getOrders().iterator().next()); @@ -430,12 +430,12 @@ 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(Transformers.ALIAS_TO_ENTITY_MAP).list(); assertEquals(1, list.size()); m = (Map) list.get(0); @@ -443,16 +443,16 @@ assertTrue(m.containsKey("VALUE")); 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( o[0].getClass(), Number.class); assertClassAssignability( o[1].getClass(), Employment.class); - - - + + + Query queryWithCollection = s.getNamedQuery("organizationEmploymentsExplicitAliases"); queryWithCollection.setLong("id", jboss.getId() ); list = queryWithCollection.list(); @@ -491,6 +491,16 @@ s = openSession(); t = s.beginTransaction(); + Dimension dim = new Dimension( 3, Integer.MAX_VALUE ); + s.save( dim ); +// s.flush(); + 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(); s.delete(emp2); s.delete(jboss); @@ -500,9 +510,9 @@ s.close(); } - - + + public static Test suite() { return new TestSuite(GeneralTest.class); } |