MongoDB: consulta por @DBRef
Tengo una jerarquía de clases diseñada para almacenar notificaciones de usuarios:
@Document
public class Notification<T> {
@Id
private String id;
@DBRef
private T tag;
...
}
@Document
public class NotificationA extends Notification<WrappedA> {
}
@Document
public class NotificationB extends Notification<WrappedB> {
}
...
Esto es útil para devolver matrices polimórficas, permitiéndome almacenar cualquier tipo de datos en el campo "etiqueta". El problema comienza cuando los objetos envueltos contienen campos @DBRef:
@Document
public class WrappedA {
@Id
private String id;
@DBRef
private JetAnotherClass referenced;
...
}
Las consultas en los campos de "etiqueta" funcionan bien:
db.NotificationA.find( {"tag.$id": ObjectId("507b9902...32a")} )
Pero necesito consultar en los campos de JetAnotherClass (dos niveles de campos de @DBRef). He intentado con la notación de puntos y también con subobjetos, pero devuelve nulo:
Notación de puntos:
db.NotificationA.findOne( {"tag.$referenced.$id": ObjectId("508a7701...29f")} )
Subobjetos:
db.NotificationA.findOne( {"tag.$referenced": { "_id": ObjectId("508a7701...29f") }} )
¿Alguna ayuda? ¡Gracias por adelantado!