For instance:
@Entity
@Indexed
private static class A {
@Id
@GeneratedValue
private Long id;
@Field(analyze = Analyze.NO)
private String foo;
}
@Entity
private static class B {
@Id
@GeneratedValue
private Long id;
@OneToOne
@IndexedEmbedded(includePaths = "foo") private A a;
}
@Entity
@Indexed
private static class C {
@Id
@GeneratedValue
private Long id;
@OneToOne
@IndexedEmbedded private B b;
}
This will not include b.a.foo in the resulting document for C, even though we would think so (since the @IndexedEmbedded in C doesn't mention any restriction on what to embed). The reason is, we only take into account the top-level "includePaths", and if it's empty, we interpret that as "don't include anything" in embedded entities... The issue can be worked around by specifying explicitly the paths to include on C.b. Note that this issue is here since 5.5.0.Final at least (I didn't check previous versions). |