外鍵關聯非主鍵id時-hbm.xml配置,及其分頁查詢DaoImpl
表關聯時,外鍵關聯非主鍵id時-hbm.xml配置:
(由於hibernate默認為關聯主鍵查詢,故需要配置相關hql語句的屬性)
<many-to-one name="areas" class="com.hnqy.entity.Areas" fetch="select" property-ref="areaid" foreign-key="areaid">
<column name="area" />
</many-to-one>
其中:foreign-key為主表字段,property-ref為類屬性
關於
hibernateTemplate.get
hibernateTemplate.find("from Shoppingitems where orderid = ? ", id);返回為List結合
關於查詢分頁的 DaoImpl
public List<Ordermanager> findByPage( String orderNumber,String userAccount,String sendName,Integer orderState , int currentPage, int pageSize) {
Session session=hibernateTemplate.getSessionFactory().getCurrentSession();
List Hqllist=new ArrayList<>();
StringBuffer hql=new StringBuffer("from Ordermanager where 1=1
if(orderNumber!=null&& !"".equals(orderNumber)){
hql.append(" and orderNumber= ? ");
Hqllist.add(orderNumber);
}
if(userAccount!=null&& !"".equals(userAccount)){
hql.append(" and userAccount= ? ");
Hqllist.add(userAccount);
}
if(sendName!=null&& !"".equals(sendName)){
hql.append(" and sendName= ?
Hqllist.add(sendName);
}
if(orderState!=null&& !"".equals(orderState)){
hql.append(" and orderState= ? ");
Hqllist.add(orderState);
}
Query q=session.createQuery(hql.toString());
for (int i = 0; i < Hqllist.size(); i++) {
q.setParameter(i, Hqllist.get(i));
}
q.setFirstResult((currentPage-1)*pageSize).setMaxResults(pageSize);
List<Ordermanager> list1=q.list();
return list1;
}
外鍵關聯非主鍵id時-hbm.xml配置,及其分頁查詢DaoImpl