0
命令我需要做一個查詢,是爲了通過外鍵 表:如何通過外鍵HQL
這是我的代碼:
@Transactional
public List<Producto> busquedaPaginada(int currPosition, int pageSize, String sSearch, int iSortCol_0, String sSortDir_0){
try {
sessionFactory.getCurrentSession().beginTransaction();
String columna = buscarColumna(iSortCol_0);
@SuppressWarnings("unchecked")
List<Producto> lista = sessionFactory.getCurrentSession().createQuery("From Producto P Where P.descripcion like '"+sSearch+"%' order by P."+columna+" "+sSortDir_0)
.setMaxResults(pageSize).setFirstResult(currPosition).list();
sessionFactory.getCurrentSession().getTransaction().commit();
return lista;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return null;
}finally{
sessionFactory.getCurrentSession().close();
}
}
private String buscarColumna(int iSortCol_0){
String columna="";
try {
if(iSortCol_0==0)
columna="idproducto";
else if (iSortCol_0==1)
columna="anio";
else if (iSortCol_0==2)
columna="clave";
else if (iSortCol_0==3)
columna="pventa";
else if (iSortCol_0==4)
columna="iddepto.depto";
else
return "idproducto";
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return columna;
}
我試着用此查詢的:
- Producto P P.descripcion like'%'order by P.iddepto.depto asc
- PRODUCTO P其中P.descripcion喜歡通過P.iddepto ASC '%' 爲了