It seems to be a bug in AnnotationMetadataProvider and how it handles @IndexedEmbedded; At some point the "max level" is set to 1, leading to the exclusion of all fields from C which is on the second level when looking from A.