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

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Aug 18 11:22:47 EDT 2009


Author: hardy.ferentschik
Date: 2009-08-18 11:22:46 -0400 (Tue, 18 Aug 2009)
New Revision: 17351

Modified:
   search/trunk/src/main/java/org/hibernate/search/engine/DocumentBuilderIndexedEntity.java
   search/trunk/src/test/java/org/hibernate/search/test/id/providedId/ProvidedIdPerson.java
Log:
HSEARCH-394
Changed the way @ProvidedId is picked up

Modified: search/trunk/src/main/java/org/hibernate/search/engine/DocumentBuilderIndexedEntity.java
===================================================================
--- search/trunk/src/main/java/org/hibernate/search/engine/DocumentBuilderIndexedEntity.java	2009-08-18 15:21:56 UTC (rev 17350)
+++ search/trunk/src/main/java/org/hibernate/search/engine/DocumentBuilderIndexedEntity.java	2009-08-18 15:22:46 UTC (rev 17351)
@@ -130,21 +130,21 @@
 		this.entityState = EntityState.INDEXED;
 		this.directoryProviders = directoryProviders;
 		this.shardingStrategy = shardingStrategy;
+	}
 
-		if ( idKeywordName == null ) {
-			// if no DocumentId then check if we have a ProvidedId instead
-			ProvidedId provided = findProvidedId( clazz, reflectionManager );
-			if ( provided == null ) {
-				throw new SearchException( "No document id in: " + clazz.getName() );
-			}
+	protected void init(XClass clazz, InitContext context) {
+		super.init( clazz, context );
 
+		// special case @ProvidedId
+		ProvidedId provided = findProvidedId( clazz, reflectionManager );
+		if ( provided != null ) {
 			idBridge = BridgeFactory.extractTwoWayType( provided.bridge() );
 			idKeywordName = provided.name();
 		}
-	}
 
-	protected void init(XClass clazz, InitContext context) {
-		super.init( clazz, context );
+		if ( idKeywordName == null ) {
+			throw new SearchException( "No document id in: " + clazz.getName() );
+		}
 
 		//if composite id, use of (a, b) in ((1,2),(3,4)) fails on most database
 		//a TwoWayString2FieldBridgeAdaptor is never a composite id
@@ -257,7 +257,7 @@
 		XClass currentClass = clazz;
 		while ( id == null && ( !reflectionManager.equals( currentClass, Object.class ) ) ) {
 			id = currentClass.getAnnotation( ProvidedId.class );
-			currentClass = clazz.getSuperclass();
+			currentClass = currentClass.getSuperclass();
 		}
 		return id;
 	}

Modified: search/trunk/src/test/java/org/hibernate/search/test/id/providedId/ProvidedIdPerson.java
===================================================================
--- search/trunk/src/test/java/org/hibernate/search/test/id/providedId/ProvidedIdPerson.java	2009-08-18 15:21:56 UTC (rev 17350)
+++ search/trunk/src/test/java/org/hibernate/search/test/id/providedId/ProvidedIdPerson.java	2009-08-18 15:22:46 UTC (rev 17351)
@@ -20,8 +20,7 @@
 	@Id
 	@GeneratedValue
 	private long id;
-
-
+	
 	@Field(index = Index.TOKENIZED, store = Store.YES)
 	private String name;
 	@Field(index = Index.TOKENIZED, store = Store.YES)



More information about the hibernate-commits mailing list