如果使用hibernate 生成Web视图所需的数据,在这种情况下一般,视图所需的数据一般都分布在不同的对象中,
这里假设数据来自NVObject和NVObject2视图由数据NVObject.name和NVObject.id(NVObject2.id)以及
NVObject2.value组成。形成视图的语句:
str = "select v.name,c.value,v.id from NVObject v,NVObject2 c where v.id = c.id";
设计视图的数据类
public class ViewData{
public ViewData(){}
public ViewData(String name,String value,String id){
this.name = name;
this.value = value;
this.id = id;
}
private String name;
private String value;
private String id;
//getXXX or setXXX
}
在HibernateImpl中有方法:
public List<ViewData> listViewDatas(){
Session session = getSession();
Query query = null;
List results = new LinkedList();
try{
query = session.createQuery(str);
}catch(HibernateException e){
throw new DAOException(e)
}
Iterator it = query.list().iterator();
while(it.hasNext()){
Object[] row =(Object[])it.next();
String name =(String)row[0];
String value = (String)row[1];
String id = (String)row[2];
ViewData vo = new ViewData();//new ViewData(name,value,id);
vo.setName(name);
vo.setValue(value);
vo.setId(id);
results.add(vo);
}
return vo;
}
搞定