2013-05-20 45 views
0

我試圖遵循本書休眠第17章SQL本機 所以我總結,我會返回一個對象XXX與SQL查詢使用休眠.. 這是我的例子我不能從基地使用SQL natif獲得一個對象休眠

@Override 
    public Composant FindComposantFRomXls(String comp, String fab) { 
return (Composant) getSessionFactory().getCurrentSession().createSQLQuery("select * from composant where ref_composant='"+comp+" ' and fabricant =(select id_fabricant from fabricant where nom_fabricant ='"+fab+"')").addEntity(Composant.class); 
    } 

,這是我的錯誤信息

java.lang.ClassCastException:org.hibernate.internal.SQLQueryImpl 不能轉換到com.JEE.model.Composant

回答

0
 return (Composant) getSessionFactory().getCurrentSession(). 
    createSQLQuery("select * from composant c where c.ref_composant=:param 
    and c.fabricant = (select id_fabricant from fabricant f where f.nom_fabricant =:param2)") 
.addEntity(Composant.class) 
    .setParameter("param", comp).setParameter("param2", fab).uniqueResult(); 

它工作正常....感謝mkyong