From: <hib...@li...> - 2006-06-20 10:56:05
|
Author: max...@jb... Date: 2006-06-20 06:56:01 -0400 (Tue, 20 Jun 2006) New Revision: 10029 Modified: trunk/Hibernate3/test/org/hibernate/test/sql/GeneralTest.java Log: added mixed scalar/entity test Modified: trunk/Hibernate3/test/org/hibernate/test/sql/GeneralTest.java =================================================================== --- trunk/Hibernate3/test/org/hibernate/test/sql/GeneralTest.java 2006-06-20 10:27:37 UTC (rev 10028) +++ trunk/Hibernate3/test/org/hibernate/test/sql/GeneralTest.java 2006-06-20 10:56:01 UTC (rev 10029) @@ -48,6 +48,10 @@ return "SELECT * FROM EMPLOYMENT"; } + protected String getEmploymentSQLMixedScalarEntity() { + return "SELECT e.*, e.employer as employerid FROM EMPLOYMENT e" ; + } + protected String getOrgEmpRegionSQL() { return "select {org.*}, {emp.*}, emp.REGIONCODE " + "from ORGANIZATION org " + @@ -321,7 +325,74 @@ t.commit(); s.close(); } + + public void testCompositeIdJoins() { + Session s = openSession(); + Transaction t = s.beginTransaction(); + Person person = new Person(); + person.setName( "Noob" ); + Product product = new Product(); + product.setProductId( new Product.ProductId() ); + 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" + + " 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" + + " 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()); + t.commit(); + s.close(); + } + public void testAutoDetectAliasing() { Session s = openSession(); Transaction t = s.beginTransaction(); @@ -372,6 +443,15 @@ 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(); @@ -419,11 +499,9 @@ s.close(); } + + - public void testMixedReturnsOrdering() { - - } - public static Test suite() { return new TestSuite(GeneralTest.class); } |