Hibernate createSQLQuery

时间:2011-12-23 15:47:55

标签: hibernate

我有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对象?谢谢你的帮助。

1 个答案:

答案 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());         
    }