【发布时间】:2015-04-17 18:50:47
【问题描述】:
请帮助我理解下面写的 Hibernate Query。我是 hibernate 新手,很难理解一些用 hibernate 查询语言编写的查询。
代码如下:
public List<Product> findByCriteriaByType(Integer orgaId, String categoryName) {
List<Product> products = null;
StringBuilder hql = new StringBuilder();
try{
String categoryHql=(categoryName!=null)?" and categoryType.id=:category_type_id":" ";
hql.append(" from Product product ");
hql.append(" left join fetch product.category category ");
hql.append(" left join fetch category.categoryType categoryType ");
hql.append(" left join fetch product.retailerSnapshots retailerSnapshot ");
hql.append(" where retailerSnapshot.organization.id=:org_id");
hql.append(categoryHql);
products = getProducts("category_type_id",orgaId, categoryName, hql);
}catch(Exception e){
e.printStackTrace();
}finally{
sessionFactory.getCurrentSession().close();
}
return products;
}
private List<Product> getProducts(String parameter,Integer orgaId, String categoryName,StringBuilder hql) {
Query query;
query = sessionFactory.getCurrentSession().createQuery(hql.toString());
if(categoryName!=null){
query.setParameter(parameter,Integer.parseInt(categoryName));
}
query.setParameter("org_id",orgaId);
return query.list();
}
还请告诉我等效的 SQL 语句。
【问题讨论】:
-
你有什么不清楚的地方?
-
@meskobalazs : 我想知道 hql 语句在上述情况下的工作原理
标签: jquery mysql sql hibernate jakarta-ee