我有兩個類在多對多的關係,但只有一個有另一個列表。休眠noob:提取沒有映射關係的條件
@Entity
public class Product{
@ManyToMany
List<Category> categories;
//...
}
@Entity
public class Category{
//...
}
我想使用標準查找與某個類別相關的所有產品,但以下不起作用。
import static java.util.Collections.singletonList;
List<Product> getProductsByCategory(Category category){
List<Product> results = getCurrentSession()
.createCriteria(Product.class)
.add(Restrictions.in("categories", singletonList(category)))
.list();
if (results == null || results.size() <= 0)
throw new EntityNotFoundException(category + "is empty");
return results;
}
當然,這將是非常簡單的,如果產品被映射到類別,但肯定休眠讓你做這樣的查詢沒有它。
編輯:
它返回一個Oracle錯誤
Caused by: java.sql.SQLException: Missing IN or OUT parameter at index:: 1
感謝您的幫助!
你有沒有得到任何錯誤,或者它只是沒有返回預期的結果?如果錯誤,什麼錯誤? – yair 2012-02-12 08:59:22