Hibernate createSQLQuery

Hibernate createSQLQuery,hibernate,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. acc

我有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();
转换它们,但它不起作用

是否有任何方法可以将此查询返回的Objects Lang.Object转换为映射的Projects对象?谢谢你的帮助

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

你看到了吗?这可能会有所帮助…顺便说一句,您应该能够很容易地建模此关联并使用标准进行处理。项目有一个帐户,帐户有一个地址,地址有邮政编码。但它不起作用-是否引发异常?或者它只是返回为nothing?为了使用加法,我需要有关联吗?它抛出一个异常,Ljava.lang.object;无法转换为Package.Projects。