我有3个表,但它们之间没有任何关联,但表中的主键用作其他两个表中的列来检索数据。我是hibernate的新手,我还没有学会创建关联,但我需要查询3个表中的数据并返回映射的对象类型。我正在使用SQL查询来执行此操作:
Query q = session.createSQLQuery("select p.projectid, p.projecttitle, p.projectdescription from projects p join accounts a on p.accountid = a. accountid join addresses ad on ad.accountid = a.accountid where ad.zipcode=" + zipcode);
我尝试使用这一行:
List<Projects> projects = (List<Projects>)q.List();
转换它们,但它不起作用。
有没有将此查询返回的对象(Lang.Object
)转换为映射的Projects对象?谢谢你的帮助。
答案 0 :(得分:0)
List projects = q.List();
for (Iterator iterator = projects.iterator(); iterator.hasNext();){
Object[] row = (Object[]) iterator.next();
Projects project = new Project();
project.setName(row[0].toString());
System.out.println("Project name: " + project.getName());
}
或者您也可以
List projects = q.List();
for (Iterator iterator = projects.iterator(); iterator.hasNext();){
Object[] row = (Object[]) iterator.next();
Projects project = new Project(row[0].toString());
System.out.println("Project name: " + project.getName());
}