Hibernate Exception : Illégal de tenter de déréférencer une collection

Considérer les Entités suivantes.

public class Product{
int id;
Date effectiveDate;
Date expiryDate;
Set<Inventory> productInventories;
}

public class Inventory{
int invId;
Date inventoryDate;
boolean soldOut;
int availableQuantity;
Product product;
}

Les deux entités cartes de tables Produit et de l'Inventaire, respectivement.

Maintenant, je dois récupérer les Produits en fonction de certaines conditions dans l'entité de Produit ainsi que l'Inventaire de l'entité.

Pour ex les conditions sont donné de voyage date de début et de voyage date de fin doit convenir efficace et la date d'expiration du Produit. Des Stocks de produits devrait avoir availableQuantity > 0.

Pour ce faire, comment puis-je écrire le hql. Puis-je écrire quelque chose comme ce qui suit

Query query = session.createQuery("from Product As product " +
                          "where product.effectiveDate <= :travelStartDate "+
                          "AND product.expiryDate >= :travelEndDate " +
                          "AND product.productInventories.availableQuantity >0 ");

Lorsque j'exécute la requête ci-dessus, il jette un Illégal de tenter de déréférencer une collection d'exception.

  • Vous essayez d'accéder à une collection comme s'il s'agissait d'une seule entrée. Si il y avait plusieurs articles en stock pour le produit, l'un avec availableQuantity 0 et l'autre avec availableQuantity 1, attendez-vous à ce produit d'être sélectionné? De quoi avez-vous réellement envie de se produire?
  • montrez votre entité de configuration.
InformationsquelleAutor Sripaul | 2011-06-13