From: <hib...@li...> - 2006-03-14 22:11:18
|
Author: epbernard Date: 2006-03-14 17:10:43 -0500 (Tue, 14 Mar 2006) New Revision: 9616 Modified: trunk/HibernateExt/ejb/src/test/org/hibernate/ejb/test/Item.java trunk/HibernateExt/ejb/src/test/org/hibernate/ejb/test/QueryTest.java Log: add test for distinct and join fetch Modified: trunk/HibernateExt/ejb/src/test/org/hibernate/ejb/test/Item.java =================================================================== --- trunk/HibernateExt/ejb/src/test/org/hibernate/ejb/test/Item.java 2006-03-14 13:35:27 UTC (rev 9615) +++ trunk/HibernateExt/ejb/src/test/org/hibernate/ejb/test/Item.java 2006-03-14 22:10:43 UTC (rev 9616) @@ -27,7 +27,7 @@ private String name; private String descr; - private Set<Distributor> distributors; + private Set<Distributor> distributors = new HashSet<Distributor>(); public Item() { } Modified: trunk/HibernateExt/ejb/src/test/org/hibernate/ejb/test/QueryTest.java =================================================================== --- trunk/HibernateExt/ejb/src/test/org/hibernate/ejb/test/QueryTest.java 2006-03-14 13:35:27 UTC (rev 9615) +++ trunk/HibernateExt/ejb/src/test/org/hibernate/ejb/test/QueryTest.java 2006-03-14 22:10:43 UTC (rev 9616) @@ -6,7 +6,9 @@ import javax.persistence.EntityManager; import javax.persistence.Query; +import org.hibernate.Hibernate; + /** * @author Emmanuel Bernard */ @@ -51,6 +53,15 @@ List result = q.getResultList(); assertNotNull( result ); assertEquals( 2, result.size() ); + + q = em.createQuery( "select item from Item item where item.name in ( ?1 )" ); + params = new ArrayList(); + params.add( item.getName() ); + params.add( item2.getName() ); + q.setParameter( "1", params ); + result = q.getResultList(); + assertNotNull( result ); + assertEquals( 2, result.size() ); em.remove( result.get( 0 ) ); em.remove( result.get( 1 ) ); em.getTransaction().commit(); @@ -195,6 +206,34 @@ em.close(); } + public void testDistinct() throws Exception { + EntityManager em = factory.createEntityManager(); + em.getTransaction().begin(); + em.createQuery( "delete Item").executeUpdate(); + em.createQuery( "delete Distributor").executeUpdate(); + Distributor d1 = new Distributor(); + d1.setName( "Fnac" ); + Distributor d2 = new Distributor(); + d2.setName( "Darty" ); + Item item = new Item( "Mouse", "Micro$oft mouse" ); + item.getDistributors().add( d1 ); + item.getDistributors().add( d2 ); + em.persist( d1 ); + em.persist( d2 ); + em.persist( item ); + em.flush(); + em.clear(); + Query q = em.createQuery( "select distinct i from Item i left join fetch i.distributors"); + item = (Item) q.getSingleResult() + ; + //assertEquals( 1, distinctResult.size() ); + //item = (Item) distinctResult.get( 0 ); + assertTrue( Hibernate.isInitialized( item.getDistributors() ) ); + assertEquals( 2, item.getDistributors().size() ); + em.getTransaction().rollback(); + em.close(); + } + public Class[] getAnnotatedClasses() { return new Class[]{ Item.class, |