我有两个表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;。
请帮助我,我是新来的冬眠。
由于
答案 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
。