[hibernate-commits] Hibernate SVN: r16477 - in search/branches/Branch_3_1/src: test/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:03:16 EDT 2009


Author: hardy.ferentschik
Date: 2009-04-29 11:03:16 -0400 (Wed, 29 Apr 2009)
New Revision: 16477

Modified:
   search/branches/Branch_3_1/src/java/org/hibernate/search/engine/DocumentBuilderIndexedEntity.java
   search/branches/Branch_3_1/src/test/org/hibernate/search/test/id/EmbeddedIdTest.java
Log:
backported HSEARCH-306, HSEARCH-248

Modified: search/branches/Branch_3_1/src/java/org/hibernate/search/engine/DocumentBuilderIndexedEntity.java
===================================================================
--- search/branches/Branch_3_1/src/java/org/hibernate/search/engine/DocumentBuilderIndexedEntity.java	2009-04-29 15:02:11 UTC (rev 16476)
+++ search/branches/Branch_3_1/src/java/org/hibernate/search/engine/DocumentBuilderIndexedEntity.java	2009-04-29 15:03:16 UTC (rev 16477)
@@ -148,9 +148,7 @@
 
 		//if composite id, use of (a, b) in ((1,2)TwoWayString2FieldBridgeAdaptor, (3,4)) fails on most database
 		//a TwoWayString2FieldBridgeAdaptor is never a composite id
-		safeFromTupleId = entityState != EntityState.INDEXED || TwoWayString2FieldBridgeAdaptor.class.isAssignableFrom(
-				idBridge.getClass()
-		);
+		safeFromTupleId = TwoWayString2FieldBridgeAdaptor.class.isAssignableFrom( idBridge.getClass() );
 
 		checkAllowFieldSelection();
 		if ( log.isDebugEnabled() ) {

Modified: search/branches/Branch_3_1/src/test/org/hibernate/search/test/id/EmbeddedIdTest.java
===================================================================
--- search/branches/Branch_3_1/src/test/org/hibernate/search/test/id/EmbeddedIdTest.java	2009-04-29 15:02:11 UTC (rev 16476)
+++ search/branches/Branch_3_1/src/test/org/hibernate/search/test/id/EmbeddedIdTest.java	2009-04-29 15:03:16 UTC (rev 16477)
@@ -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