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]);
}
%>