转换本机查询hibernate的ResultSet

时间:2012-01-17 08:59:50

标签: java hibernate

我有两个表ABC,XYZ,我已经在三个常见列上加入了它们,比如P,Q,R。

现在,

我希望查询的响应是完整的连接行。

Session hibernateSession = (Session) em.getDelegate();
StringBuffer queryString = new StringBuffer();
queryString.append("SELECT t1.*, t2.* FROM ABC t1, XYZ t2 WHERE t1.P = t2.P AND t1.Q = t2.Q AND t1.R = t2.R");

Collection<----> results = query.list();

我是否需要创建一个可以存储完整连接行的新对象,或者我可以将结果转换为两个集合,即Collection&lt; ABC&gt; ,Collection&lt; XYZ&gt;。

请帮助我,我是新来的冬眠。

由于

1 个答案:

答案 0 :(得分:2)

您可以在查询对象上使用addEntity方法,就像这样

    session.createSQLQuery("queryString")
              .addEntity("t1")
              .addEntity("t2")
              .list();

请参阅http://docs.jboss.org/hibernate/core/3.3/reference/en/html/querysql.html#d0e13763

您可能希望了解在使用本机SQL查询时有用的ResultTransformers