2009-11-06 9 views

Répondre

3

Pour répondre à la question dans le titre - non, il n'y a pas d'équivalent direct pour elements() dans l'API Critères. Cependant, l'utilisation de elements() de votre requête est superflue. Il peut au contraire être plus simplement réécrite comme

select order from ORDER as order 
    where order.items.itemID like 'ITM_01' 

critères équivalents devrait utiliser par exemple des critères imbriqués pour accéder à la collection:

session.createCriteria(Order.class) 
.createCriteria("items") 
.add(Restrictions.like("itemID", "ITM_01")); 

Une autre alternative consiste à utiliser les alias:

session.createCriteria(Order.class) 
.createAlias("items", "item") 
.add(Restrictions.like("item.itemID", "ITM_01")); 

Remarque que vous n'avez pas besoin d'utiliser LIKE pour une valeur fixe, vous pouvez utiliser l'égalité simple à la place.

Questions connexes