@IndexingDependency verbosity

Hi guys,

Just a rapid question about the @IndexingDependency verbosity annotation :

when I specify a full path like this :

@IndexingDependency(derivedFrom = {
			@ObjectPath({
					@PropertyValue(propertyName = Depot_.DEPOT_INITIAL),
					@PropertyValue(propertyName = Depot_.DOCUMENTS_DEPOT),
					@PropertyValue(propertyName = DocumentDepot_.COMMENTAIRE)
			})
})

with DocumentDepot_.COMMENTAIRE being the only primitive JavaType (end of path).

Do I have to specify the partial path like this also ? :

@IndexingDependency(derivedFrom = {
			@ObjectPath({
					@PropertyValue(propertyName = Depot_.DEPOT_INITIAL)
			}),
			@ObjectPath({
					@PropertyValue(propertyName = Depot_.DEPOT_INITIAL),
					@PropertyValue(propertyName = Depot_.DOCUMENTS_DEPOT)
			}),
			@ObjectPath({
					@PropertyValue(propertyName = Depot_.DEPOT_INITIAL),
					@PropertyValue(propertyName = Depot_.DOCUMENTS_DEPOT),
					@PropertyValue(propertyName = DocumentDepot_.COMMENTAIRE)
			})
})

because, when we do, for example, setDepotInitial(…) in the entity object, or setDocumentsDepot(…), the indexed field DocumentDepot_.COMMENTAIRE may have changed also. We don’t need necessarily to call to setCommentaire to trigger the reindexation. Do you see what I mean ?

Thx.

Hey,

No, you don’t, it’s implicit. Hibernate Search is aware that changing any part of the path can change the “leaf”, and will act accordingly.