2009-11-06 39 views

回答

3

要回答标题中的问题 - 不,有一个在标准API中没有直接等效于elements()

但是,您查询的使用elements()是多余的。它可以改为更简单地改写为

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

等效标准将不得不使用嵌套的标准实例来访问集合:

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

另一种方法是使用别名:

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

注您不需要使用LIKE作为固定值,您可以使用简单的等式替代。