2015年3月16日 星期一

Hibernate Native SQL

http://www.tutorialspoint.com/hibernate/hibernate_native_sql.htm

    @Transactional
    public  List listInForeignKey(Class classes,String fromtable,String foreignkeyname,Long foreignkey){

        Session session =beforeTransaction();
        //List  list = session.createCriteria( classes).createAlias(foreignkeyname, foreignkeyname).add(Restrictions.eq(foreignkeyname+"."+foreignkeyname, foreignkey)).list();
       

        SQLQuery query=whrere(session,classes,fromtable,foreignkeyname,foreignkey);
        List results = query.list();
       
        afterTransaction(session);
        return results;
    }
   
    private SQLQuery whrere(Session session,Class classes,String fromtable,String foreignkeyname,Long foreignkey){
        String sql = "SELECT * FROM ".concat(fromtable).concat(" WHERE ").concat(fromtable).concat(".").concat(foreignkeyname).concat(" =:").concat(foreignkeyname);
        //System.out.println("whrere:"+sql); whrere:SELECT * FROM stock WHERE stock.warehouseId =:warehouseId
        SQLQuery query = session.createSQLQuery(sql);
        query.addEntity( classes);
        query.setParameter(foreignkeyname, foreignkey);
        return query;
    }


@RequestMapping("/stock/list/{warehouseId}")
public List<Stock> listwarehouseId(@PathVariable("warehouseId") Long warehouseId){
    //http://localhost:8081/suntoneBackend/stock/list/2
    List<Stock> list = (List<Stock>)daoUtils.listInForeignKey(Stock.class, "stock", "warehouseId", warehouseId);
   
    return list;
}
http://localhost:8081/suntoneBackend/stock/list/2

沒有留言:

張貼留言