diff --git a/engine/src/main/java/org/hibernate/search/bridge/impl/BridgeFactory.java b/engine/src/main/java/org/hibernate/search/bridge/impl/BridgeFactory.java index c0e4bea81bf..b5c199c12b2 100644 --- a/engine/src/main/java/org/hibernate/search/bridge/impl/BridgeFactory.java +++ b/engine/src/main/java/org/hibernate/search/bridge/impl/BridgeFactory.java @@ -19,6 +19,7 @@ import org.hibernate.annotations.common.reflection.XMember; import org.hibernate.search.annotations.ClassBridge; import org.hibernate.search.annotations.Field; +import org.hibernate.search.annotations.IndexedEmbedded; import org.hibernate.search.annotations.Parameter; import org.hibernate.search.annotations.Spatial; import org.hibernate.search.bridge.AppliedOnTypeAwareBridge; @@ -275,6 +276,9 @@ public FieldBridge buildFieldBridge(Field field, } private ContainerType getContainerType(XMember member, ReflectionManager reflectionManager) { + if ( ! member.isAnnotationPresent( IndexedEmbedded.class ) ) { + return ContainerType.SINGLE; + } if ( member.isArray() ) { return ContainerType.ARRAY; } @@ -285,6 +289,8 @@ private ContainerType getContainerType(XMember member, ReflectionManager reflect if ( member.isCollection() && Map.class.equals( member.getCollectionClass() ) ) { return ContainerType.MAP; } + // marked @IndexedEmbedded but not a container + // => probably a @Field @IndexedEmbedded Foo foo; return ContainerType.SINGLE; }