[hibernate-commits] Hibernate SVN: r16476 - in search/trunk/src: test/java/org/hibernate/search/test/id and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Apr 29 11:02:13 EDT 2009


Author: hardy.ferentschik
Date: 2009-04-29 11:02:11 -0400 (Wed, 29 Apr 2009)
New Revision: 16476

Modified:
   search/trunk/src/main/java/org/hibernate/search/engine/DocumentBuilderIndexedEntity.java
   search/trunk/src/test/java/org/hibernate/search/test/id/EmbeddedIdTest.java
Log:
HSEARCH-306, HSEARCH-248
Added a test for composite ids. You need at least two entries in the result to get the bug to manifest itself

Modified: search/trunk/src/main/java/org/hibernate/search/engine/DocumentBuilderIndexedEntity.java
===================================================================
--- search/trunk/src/main/java/org/hibernate/search/engine/DocumentBuilderIndexedEntity.java	2009-04-29 14:45:14 UTC (rev 16475)
+++ search/trunk/src/main/java/org/hibernate/search/engine/DocumentBuilderIndexedEntity.java	2009-04-29 15:02:11 UTC (rev 16476)
@@ -160,7 +160,6 @@
 		}
 	}
 
-
 	protected void checkDocumentId(XProperty member, PropertiesMetadata propertiesMetadata, boolean isRoot, String prefix, InitContext context) {
 		Annotation idAnnotation = getIdAnnotation( member, context );
 		if ( idAnnotation != null ) {

Modified: search/trunk/src/test/java/org/hibernate/search/test/id/EmbeddedIdTest.java
===================================================================
--- search/trunk/src/test/java/org/hibernate/search/test/id/EmbeddedIdTest.java	2009-04-29 14:45:14 UTC (rev 16475)
+++ search/trunk/src/test/java/org/hibernate/search/test/id/EmbeddedIdTest.java	2009-04-29 15:02:11 UTC (rev 16476)
@@ -3,48 +3,92 @@
 
 import java.util.List;
 
-import org.hibernate.search.test.SearchTestCase;
-import org.hibernate.search.Search;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.search.TermQuery;
+
 import org.hibernate.Session;
 import org.hibernate.Transaction;
-import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.index.Term;
+import org.hibernate.search.Search;
+import org.hibernate.search.test.SearchTestCase;
 
 /**
  * @author Emmanuel Bernard
  */
 public class EmbeddedIdTest extends SearchTestCase {
 	public void testFieldBridge() throws Exception {
-		PersonPK emmPk = new PersonPK();
-		emmPk.setFirstName( "Emmanuel" );
-		emmPk.setLastName( "Bernard" );
-		Person emm = new Person();
-		emm.setFavoriteColor( "Blue" );
-		emm.setId( emmPk );
-		Session s = openSession(  );
+		PersonPK emmanuelPk = new PersonPK();
+		emmanuelPk.setFirstName( "Emmanuel" );
+		emmanuelPk.setLastName( "Bernard" );
+		Person emmanuel = new Person();
+		emmanuel.setFavoriteColor( "Blue" );
+		emmanuel.setId( emmanuelPk );
+
+		Session s = openSession();
 		Transaction tx = s.beginTransaction();
-		s.save(emm);
+		s.save( emmanuel );
 		tx.commit();
 		s.clear();
+
 		tx = s.beginTransaction();
 		List results = Search.getFullTextSession( s ).createFullTextQuery(
-				new TermQuery( new Term("id.lastName", "Bernard" ) ) ).list();
+				new TermQuery( new Term( "id.lastName", "Bernard" ) )
+		).list();
 		assertEquals( 1, results.size() );
-		emm = (Person) results.get(0);
-		emm.setFavoriteColor( "Red" );
+		emmanuel = ( Person ) results.get( 0 );
+		emmanuel.setFavoriteColor( "Red" );
 		tx.commit();
 		s.clear();
+
 		tx = s.beginTransaction();
 		results = Search.getFullTextSession( s ).createFullTextQuery(
-				new TermQuery( new Term("id.lastName", "Bernard" ) ) ).list();
+				new TermQuery( new Term( "id.lastName", "Bernard" ) )
+		).list();
 		assertEquals( 1, results.size() );
-		emm = (Person) results.get(0);
-		assertEquals( "Red", emm.getFavoriteColor() );
+		emmanuel = ( Person ) results.get( 0 );
+		assertEquals( "Red", emmanuel.getFavoriteColor() );
 		s.delete( results.get( 0 ) );
 		tx.commit();
 		s.close();
+	}
 
+	/**
+	 * HSEARCH-HSEARCH-306, HSEARCH-248
+	 *
+	 * @throws Exception throws exception in case the test fails.
+	 */
+	public void testSafeFromTupleId() throws Exception {
+		PersonPK emmanuelPk = new PersonPK();
+		emmanuelPk.setFirstName( "Emmanuel" );
+		emmanuelPk.setLastName( "Bernard" );
+		Person emmanuel = new Person();
+		emmanuel.setFavoriteColor( "Blue" );
+		emmanuel.setId( emmanuelPk );
+
+		PersonPK johnPk = new PersonPK();
+		johnPk.setFirstName( "John" );
+		johnPk.setLastName( "Doe" );
+		Person john = new Person();
+		john.setFavoriteColor( "Blue" );
+		john.setId( johnPk );
+
+		Session s = openSession();
+		Transaction tx = s.beginTransaction();
+		s.save( emmanuel );
+		s.save( john );
+		tx.commit();
+		s.clear();
+
+		tx = s.beginTransaction();
+
+		// we need a query which has at least the size of two. 
+		List results = Search.getFullTextSession( s ).createFullTextQuery(
+				new TermQuery( new Term( "favoriteColor", "blue" ) )
+		).list();
+		assertEquals( 2, results.size() );
+		tx.commit();
+		s.close();
 	}
+
 	protected Class[] getMappings() {
 		return new Class[] {
 				Person.class




More information about the hibernate-commits mailing list