hibernate 多表查詢

 1     public List dzcx(Object a) {
 2         try{
 3             
 4             //Query p=getSession().createQuery("PersonInf where name=:name ");
 5             Query p=getSession().createQuery("select p.name,p.age,a.addressDetail from PersonInf as p" +
 6                     " inner join p.addressInfs as a" +
 7                     " where a.addressDetail=:a" );
 8             //要加上select就要加上別名
 9             //多個表之間查詢加上   inner join
10             p.setParameter("a", a);
11             return    p.list();
12         }
13         catch(RuntimeException e)
14         {
15             log.error("find Name failed", e);
16             throw e;
17         }

select p.name,p.age,a.addressDetail from PersonInf as p inner join p.addressInfs as a where a.addressDetail=:a 數組

這裏是根據地址查詢,顯示名字、年齡、地址。 inner join  自動鏈接中間表,根據p.addressInfs 找到addressInf表。spa

 

 

調用查詢:code

<%blog

 PersonInfDAO p=new PersonInfDAO();get

List a=p.dzcx("墊江");it

Iterator it=a.iterator();io

while(it.hasNext()){class

 Object[] pit=(Object[])it.next();//注意若是返回的是一個值,而不是一個數組,那麼這裏就應該是Object pit=(Object)it.next();List

out.print(pit[0]);select

out.print(pit[1]);

out.print(pit[2]);

}

%>

相關文章
相關標籤/搜索