J'ai le graphique suivant:requête avec restriction sur un problème sous-classe a rejoint
OrderLine
OrderLineExtension
OrderLineExtensionA
OrderLineExtensionB
OrderLineExtensionC
OrderLine contient un ensemble de OrderLineExtension.
OrderLineExtension est défini comme: @Inheritance (stratégie = InheritanceType.JOINED) et est marqué comme étant une entité abstraite et est
Une table est créée dans la base de chacune de ces classes de la hiérarchie.
J'essaie d'effectuer une requête où le nom de l'article sur OrderLine est "item", mais où est orderReferenceNumber "orderRef" dans OrderLineExtensionA.
Je ne suis pas sûr de savoir comment passer de OrderLine à OrderLineExtensionA car il n'y a pas de référence java de OrderLineExtension à OrderLineExtensionA.
J'ai jusqu'ici obtenu ceci qui bien sûr ne fonctionne pas.
filter=DetachedCriteria.forClass(OrderLine.class);
.add(Restrictions.eq("item", "item"));
.createCriteria("orderLineExtension")
.add(Restrictions.eq("orderReferenceNumber", "orderRef"));
Cette mise en veille prolongée échoue comme se plaint qu'il ne peut pas trouver orderReferenceNumber dans orderLineExtension de classe qui est vrai qu'il est dans orderLineExtensionA. Mais, comment je traverse à l'extension? Je ne peux pas imbriquer un autre createCriteria car il n'y a pas de référence dans la superclasse à la sous-classe.
Toute aide serait appréciée.