2011-05-09 2 views
0

J'ai une classe de produit qui a une relation un-à-plusieurs avec la classe ProductInventory. Pour un identifiant de produit particulier, j'ai environ 300 inventaires.Aide à la requête Hibernate

Si je souhaite extraire un produit en fonction de son ID et de son inventaire avec une plage de dates spécifiée, comment puis-je exécuter une requête?

Je peux aller avec soit hql ou des critères..Mais je ne suis pas sûr de savoir comment l'implémenter comme je suis un débutant en hibernation. S'il vous plaît aider.

+0

Avez-vous des connaissances de SQL? Et avez-vous même essayé de lire la documentation hibernate hql avant de poster cette question? – user658991

+0

J'ai fait ... En fait, j'ai une requête de jointure hql en cours d'exécution. Mais comment puis-je traiter la sortie de la requête est l'endroit où j'ai été frappé. – Sripaul

Répondre

0

Je recommande d'utiliser des critères et pour la plage de dates, vous pouvez utiliser

criteria.add(Restrictions.between(column_name, minValue,maxValue)).list(); 

Pour plus référence visit here

1

HQL Exemple,

String hql = "FROM Product p WHERE p.id = :id AND p.inventory.date BETWEEN :date1 AND :date2"; 

Query query = session.createQuery(hql); 
query.setParameter("id", id); 
query.setParameter("date1", date1); 
query.setParameter("date2", date2);  

List<Product> products = query.list(); 
for(Product product : products) { 
    System.out.println(product.getId() + "..."); 
    List<ProductInventory> inventories = product.getProductInventory(); 
    for(ProductInventory inventory : inventories) { 
     System.out.println(inventory.get...); 
    } 
} 
+0

salut rosdi, dans le hql ci-dessus, est l'inventaire d'une collection? – Sripaul

+0

Oui bien sûr, c'est une relation de un à plusieurs droite. Il peut s'agir d'un 'Set' ou d'une' List', selon la façon dont vous le configurez dans le mapping/annotation. –

+0

Rosdi, j'ai essayé la même chose dans mon code. Je reçois une exception disant tentative illégale de déréférencer une collection ... – Sripaul